一、 Python变量与数据类型
- Python是一种动态解释型的编程语言
- 要想使用python,可以使用python自带的IDLE编辑器,也可以下载PyCharm、VScode等
1.变量概述
变量是存储在内存中的值,而这就意味着在创建变量时会在内存中开辟一个空间基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中,因此,变量可以指定不同的数据类型,如字符串、数字、列表、字典甚至函数
变量名是由字母、数字、下划线组成的,第一个字符必须是字母或者下划线_
使用变量可以提高代码的可读性,便于修改
Python中的变量赋值不需要类似声明,每个变量都在内存中创建,包括变量的的标识、名称、数据等信息,每个变量在使用前都必须赋值,变量赋值以后这个变量才会被创建
在Python中“=”用来给变量赋值,变量名=变量值,例如:
>>> a = "hello world" >>> print(a) hello world
2.创建变量
#创建合法的变量名称 >>> a =1 >>>print(a) #print()是打印,即shell中的echo 1 >>> _a =2 >>> print(_a) 2 >>> a1 = 3 >>> print(a1) 3 #可以同时指定多个变量名进行赋值 >>> a,b,c = 1,2,3 >>> print(a) 1 >>> print(b,c) 2 3
3.Python3常用的数据类型
列表是有序的对象集合,而字典是无序的对象集合
两者的区别在于:
(1)字典中的元素是通过键来存取的,也就是键值对的方式Key-Value,而不是通过偏移存取
(2)列表只是简单的存放多个变量值,字典相当于是"在字典中又创建了变量"
- 还有一种类型是
集合(set)
,集合是无序的对象集合,集合中没有重复的元素,通常用来去重等,使用{ }
来创建,不过和字典不同的是不需要使用:
来定义key和value,与列表一样的去定义元素即可
3.1.数字(Numbers)
3.1.1.数字的数据类型也分成了很多种类型:
整型(int): 也就是整数
浮点型(float): 带小数点的数字
布尔型(bool): 用于逻辑运算,只有true和false,即真和假
复数(complex): 复数由实部(real)和虚部(imag)构成,在 Python 中,复数的虚部以j或者J作为后缀,,如1+2j、1.1+2.2J
3.1.2.Python运算符:
算法 | 运算符 |
加法 | + |
减法 | - |
乘法 | * |
除法 | / |
求模,取余 | % |
求幂,即求次方,2**2即2的2次方 | ** |
先乘除后加减,有小括号就先算小括号,注意:Python是不支持自增运算符++和自减运算符–的
3.1.3.整型、浮点型、布尔型
>>> x = 123 #整型 >>> print(x) 123 >>> y = 1.12 #浮点型 >>> print(y) 1.12 >>> a = True #布尔型true >>> print(a) True >>>if(a): #使用if语句反段,符合if语句的条件,就输出下面的语句,因为a为布尔型true,所以始终为真,也就是始终符合条件 ... print("为真") ... 为真 >>> b = False #布尔型false >>> if(b): #如果b符合条件,则输出为真,否则输出为假,因为b是布尔型false,所以始终为假,也就是始终为假 ... print("为真") ... else: ... print("为假") ... 为假
3.1.4.变量标识符
变量标识符就像是变量的“身份证”,具有唯一性
>>> print(id(x)) #查看x变量的标识符 2774440106160 >>> print(id(y)) #查看y变量的标识符 2774486777776
3.1.5.Python运算符
>>> x,y = 2,4 #赋值变量x和y的值分别是2和4 >>> print(x+y,y-x,x*y) #加、减、乘算法 6 2 8 >>> print(4/2,2**4) #除、求幂算法 2.0 16 >>> print(8%5) #取余算法,8除5余3 3
3.2.字符串(String)
python中单引号和双引号使用完全相同
使用三引号''' 或 """)可以指定一个多行字符串
转义符 \
反斜杠可以用来转义,使用r可以让反斜杠不发生转义,如 r"this is a line with \n" 则\n会作为普通字符显示,而不是作为换行符
按字面意义级联字符串,如"this " "is " "string"会被自动转换为this is string
字符串可以用 + 运算符连接在一起,用 * 运算符重复
Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始,与列表相同
Python中的字符串不能改变
Python 没有单独的字符类型,一个字符就是长度为 1 的字符串
3.2.1.单引号、双引号、三引号
>>> name = '亚索' #单引号 >>> print(name) 亚索 >>> age = "34岁" #双引号 >>> print(age) 34岁 >>> aihao = """ #三引号 耍剑 喝酒 """ >>> print(aihao) 耍剑 喝酒
3.2.2.转义符
>>> aaa = "aa'gao'" >>> print(aaa) aa'gao' >>> bbb = ' aaa"ccc"' >>> print(bbb) aaa"ccc" >>> ccc = 'abc\'ccc' #转义'为普通字符 >>> print(ccc) abc'ccc
3.2.3.常用转义符
转义符 | 作用 |
\ | 在行尾时使用,为续航符,也就是换行符 |
\\ | 这个含义是指把\转义成普通字符 |
\’ | 把’转义成普通字符 |
\" | 把“转义成普通字符 |
\n | 换行符,把光标移动到下一行继续 |
\v | 纵向制表符,将光标向下移动一个制表符单位 |
\t | 水平制表符,将光标向右移动一个制表符单位 |
\r | 代表一个回车 |
3.2.4.字符串的其他用法
#+号可以当作字符串的连接字符,而*号可以是重复操作 >>> print("aaa" + "bbb") aaabbb >>> print(3*"aaa") aaaaaaaaa #新建一个新的.py文件,写入: a = ' ' print("欢迎来到,英雄联盟") print(a*2+"欢迎来到,英雄联盟") print(a*4+"欢迎来到,英雄联盟") 欢迎来到,英雄联盟 欢迎来到,英雄联盟 欢迎来到,英雄联盟 #a为一个空,利用*号可以使空重复操作变成多个,然后就可以实现上面的效果
3.3.列表(list)
3.3.1.列表的定义
#列表其实就是一个变量有多个变量值,但是这个变量值叫做元素,所以也叫做,一个列表中有多个元素,使用[]来表示列表 >>> a = ["1","2","3"] >>> print(a) ['1', '2', '3']
3.3.2列表的取值
#列表有两种取值顺序: 1.从左到右索引默认从0开始,最大范围是字符串长度-1,这个0和shell的位置变量有点像 2.从右到左的索引默认从-1开始,最大范围是字符串开头 >>> a = ["1","2","3"] >>> print(a) ['1', '2', '3'] >>> print(a[0]) 1 >>> print(a[1]) 2 >>> print(a[2]) 3 >>> print(a[-1]) 3 >>> print(a[-2]) 2 >>> print(a[-3]) 1 >>> print(a[0:2]) #从0开始到2位置结束 ['1', '2'] >>> print(a[0:3]) ['1', '2', '3'] >>> print(a[0:1]) ['1'] >>> a[0]=4 #修改a列表中0位置为4 >>> print(a) [4, '2', '3'] >>> a.append(5) #在a列表末尾添加5 >>> print(a) [4, '2', '3', 5] >>> a.insert(1,6) #在a列表的1位置后添加6 >>> print(a) [4, 6, '2', '3', 5]
3.3.3.删除列表元素
>>> print(a) [4, 6, '2', '3', 5] >>> del a[0] #删除a列表中的0位置的元素 >>> print(a) [6, '2', '3', 5]
3.3.4.查找列表元素
>>> print(a) [6, '2', '3', 5] >>> 6 in a #查看a列表中是否有6,有就返回True没有就返回False True >>> 8 in a False
3.3.5.合并列表
>>> a = ["nihao","shijie"] >>> b = ["hello","world"] >>> c = a + b #利用+号,来合并列表,变量也可以这样使用 >>> print(c) ['nihao', 'shijie', 'hello', 'world'] >>> d = b + a >>> print(d) ['hello', 'world', 'nihao', 'shijie'] >>> print(a*3) #利用*号,来重复列表 ['nihao', 'shijie', 'nihao', 'shijie', 'nihao', 'shijie']
3.3.6.列表常见问题
>>> print(a) [1, 2, 3] >>> print(a[6]) #不能直接查看超过列表元素总数的值 Traceback (most recent call last): File "<input>", line 1, in <module> IndexError: list index out of range >>> print(a[1:6]) #但是可以指定范围查看 [2, 3] >>> print(a[0:-1]) #指定范围时,可以同时使用正数和负数进行索引 [1, 2]
3.3.7.嵌套列表
#列表中也可以是列表,是可以无限嵌套的 >>> a = [[1,2,3],"aaa",[4,5,6]] >>> print(a) [[1, 2, 3], 'aaa', [4, 5, 6]] >>> print(a[0]) #查看a列表中的第0个位置的元素 [1, 2, 3] >>> print(a[0][0]) #查看a列表中第0个位置元素的第0个位置的元素 1
3.3.8.字符串转列表
str1 = "12345" list1 = list(str1) print list1 str2 = "123 sjhid dhi" list2 = str2.split() #or list2 = str2.split(" ") #以“空”为分割来切割字符串生成列表 print list2 str3 = "www.google.com" list3 = str3.split(".") #以“.”为结果分割 print list3
结果如下:
['1', '2', '3', '4', '5'] ['123', 'sjhid', 'dhi'] ['www', 'google', 'com']
3.3.9.反转列表元素
a=[1,2,3,4] b=a[-1::-1] #第一个-1表示从4开始,::表示移动到列表末尾,也就是移动到1,第二个-1表示逆向 print(b) #输出结果 [4, 3, 2, 1]