百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python 变量学习(python里的变量)

off999 2024-11-02 12:25 21 浏览 0 评论

python变量

变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。

赋值

1) python中变量赋值不需要类型声明

2) 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。

3) 变量使用前必须赋值,变量赋值后才可被创建

4) 变量赋值格式: a = 12

5) python允许多个变量同时赋值,格式为: a = b = c =100或者a,b,c,d=1,34,”test”,99

标准数据类型

python 定义了五个标准数据类型:

  • Numbers(数字)
  • String(字符串)
  • List(列表)
  • Tupple(元组)
  • Dictionary(字典)

Numbers(数字)

数字数据类型为不可改变数据类型,当改变数字数据类型对象时会分配一个新的对象

1) 创建

可以直接通过赋值方式创建一个数字数据类型对象,每赋值一个数字类型就会创建一个新的对象。格式为:

var1=101

2) 删除

通过del语句删除 del var1,var2,...,varN

3) 支持类型

  • int(有符号的整型)
  • long(长整型[也可代表八进制和十六进制]):长整型也可以使用小写"L",但是还是建议您使用大写"L",避免与数字”1″混淆。Python使用"L"来显示长整型。
  • float(浮点型)
  • complex(复数)

String(字符串)

字符串由数字、字母、下划线组成的一串字符。

1) 取值方式

python中有两种方式对当前的字符串进行取值:

  • 从左到右取值默认从0开始,最大范围为字符长度减1
  • 从右到左取值默认从-1开始。

2) 截取字串格式

str[begin:over]下标可以为0表示从头开始或到尾部截止。注意begin指定的字符需要在over左侧,否则无法取到。

3)切片操作

str[begin:over:step],对str截取后的字符串以step步长进行切片分割。

List(列表)

python 中使用最频繁的数据结构,可以完成大多数集合类结构的数据结构实现。支持字符、数字、字符串以及列表。通过[]进行标识,列表的截取方式和String的字串截取方式相同.[begin:over],加号(+)是列表连接运算符,星号(*)是重复操作。如下案例:

#List

list =['testa','bbb',123433,40.6]

a=['test','a',999]

print list

list[3]=3

print list[2:3]

print list+a

print list * 2

Tupple(元组)

元组类似与List,但是元组不可二次赋值,使用()标志,同样通过逗号分割,tupple的获取和List方法相同。如下为用法示例:

#tupple

tuple = ('tupple top',123,23.45,'tupple end')

t2 = (123.4,45,'tt',109)

print tuple

print t2

print  tuple[:4]

#tuple[3]=3  //该操作无效,元组不允许修改更新

print tuple * 2

print tuple+t2

Dictionary(字典)

类似与List,List有序、Dictionary无序(类似与Java中的map,通过key-value方式存储),格式通过{key:value,....}赋值。和json数据格式很相像.如下,给出一个简单的操作示例:

#dictionary

dict = {'key1':'value1','key2':23,2:"gg"}

print dict

#print dict[0] //这种操作是不合法的

print dict[2]

print dict.keys()

print dict.values()

dict2=dict.copy()

print dict2

数据类型转化

通过函数实现数据类型的转换。对应函数如下:

int(x [,base])             # 将x转换为一个整数
long(x [,base] )            # 将x转换为一个长整数
float(x)                 # 将x转换到一个浮点数
complex(real [,imag])         # 创建一个复数
str(x)                  # 将对象 x 转换为字符串
repr(x)                  # 将对象 x 转换为表达式字符串
eval(str)                # 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s)                 # 将序列 s 转换为一个元组
list(s)                  # 将序列 s 转换为一个列表
set(s)                  # 转换为可变集合
dict(d)                  # 创建一个字典。d 必须是一个序列 (key,value)元组。
frozenset(s)              # 转换为不可变集合
chr(x)                  # 将一个整数转换为一个字符
unichr(x)                # 将一个整数转换为Unicode字符
ord(x)                  # 将一个字符转换为它的整数值
hex(x)                  # 将一个整数转换为一个十六进制字符串
oct(x)                  # 将一个整数转换为一个八进制字符串

参数数据类型判断获取

1) 通过type(param)返回参数类型,显示如下格式:

<type 'dict'>

2)通过isinstance 来判断,如下:

print isinstance(2,int)

##结果如下:

True

注意

1)尽量不要使用内部函数名作为变量的名称,否则在使用该内部函数的时候回报:TypeError: 'list' object is not callable错误;

2)数据类型分为数字型和非数字型。数字型包括整型,长整型,浮点型,复数型;非数字型包括字符串,列表,元组和字典 ;

3)非数字型的相同点:都可以进行切片、连接(+)、重复(*)、取值([])等相关操作;

4)非数字型不同点:列表可以直接赋值并对其进行更新修改,元组赋值后不可更改,字典通过(key,vlaue)存储,通过key取值进行更新修改。

相关推荐

Linux 网络协议栈_linux网络协议栈

前言;更多学习资料(包含视频、技术学习路线图谱、文档等)后台私信《资料》免费领取技术点包含了C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,Z...

揭秘 BPF map 前生今世_bpfdm

1.前言众所周知,map可用于内核BPF程序和用户应用程序之间实现双向的数据交换,为BPF技术中的重要基础数据结构。在BPF程序中可以通过声明structbpf_map_def...

教你简单 提取fmpeg 视频,音频,字幕 方法

ffmpeg提取视频,音频,字幕方法(HowtoExtractVideo,Audio,SubtitlefromOriginalVideo?)1.提取视频(ExtractVi...

Linux内核原理到代码详解《内核视频教程》

Linux内核原理-进程入门进程进程不仅仅是一段可执行程序的代码,通常进程还包括其他资源,比如打开的文件,挂起的信号,内核内部的数据结构,处理器状态,内存地址空间,或多个执行线程,存放全局变量的数据段...

Linux C Socket UDP编程详解及实例分享

1、UDP网络编程主要流程UDP协议的程序设计框架,客户端和服务器之间的差别在于服务器必须使用bind()函数来绑定侦听的本地UDP端口,而客户端则可以不进行绑定,直接发送到服务器地址的某个端口地址。...

libevent源码分析之bufferevent使用详解

libevent的bufferevent在event的基础上自己维护了一个buffer,这样的话,就不需要再自己管理一个buffer了。先看看structbufferevent这个结构体struct...

一次解决Linux内核内存泄漏实战全过程

什么是内存泄漏:程序向系统申请内存,使用完不需要之后,不释放内存还给系统回收,造成申请的内存被浪费.发现系统中内存使用量随着时间的流逝,消耗的越来越多,例如下图所示:接下来的排查思路是:1.监控系统中...

彻底搞清楚内存泄漏的原因,如何避免内存泄漏,如何定位内存泄漏

作为C/C++开发人员,内存泄漏是最容易遇到的问题之一,这是由C/C++语言的特性引起的。C/C++语言与其他语言不同,需要开发者去申请和释放内存,即需要开发者去管理内存,如果内存使用不当,就容易造成...

linux网络编程常见API详解_linux网络编程视频教程

Linux网络编程API函数初步剖析今天我们来分析一下前几篇博文中提到的网络编程中几个核心的API,探究一下当我们调用每个API时,内核中具体做了哪些准备和初始化工作。1、socket(family...

Linux下C++访问web—使用libcurl库调用http接口发送解析json数据

一、背景这两天由于一些原因研究了研究如何在客户端C++代码中调用web服务端接口,需要访问url,并传入json数据,拿到返回值,并解析。 现在的情形是远程服务端的接口参数和返回类型都是json的字符...

平衡感知调节:“系统如人” 视角下的架构设计与业务稳定之道

在今天这个到处都是数字化的时代,系统可不是一堆冷冰冰的代码。它就像一个活生生的“数字人”,没了它,业务根本转不起来。总说“技术要为业务服务”,但实际操作起来问题不少:系统怎么才能快速响应业务需求?...

谈谈分布式文件系统下的本地缓存_什么是分布式文件存储

在分布式文件系统中,为了提高系统的性能,常常会引入不同类型的缓存存储系统(算法优化所带来的的效果可能远远不如缓存带来的优化效果)。在软件中缓存存储系统一般可分为了两类:一、分布式缓存,例如:Memca...

进程间通信之信号量semaphore--linux内核剖析

什么是信号量信号量的使用主要是用来保护共享资源,使得资源在一个时刻只有一个进程(线程)所拥有。信号量的值为正的时候,说明它空闲。所测试的线程可以锁定而使用它。若为0,说明它被占用,测试的线程要进入睡眠...

Qt编写推流程序/支持webrtc265/从此不用再转码/打开新世界的大门

一、前言在推流领域,尤其是监控行业,现在主流设备基本上都是265格式的视频流,想要在网页上直接显示监控流,之前的方案是,要么转成hls,要么魔改支持265格式的flv,要么265转成264,如果要追求...

30 分钟搞定 SpringBoot 视频推拉流!实战避坑指南

30分钟搞定SpringBoot视频推拉流!实战避坑指南在音视频开发领域,SpringBoot凭借其快速开发特性,成为很多开发者实现视频推拉流功能的首选框架。但实际开发中,从环境搭建到流处理优...

取消回复欢迎 发表评论: