2.数据类型
-
整数
Python可以处理任意大小的整数,当然包括负整数。(记得c和c++里面对整数的大小有约束)
有时候用十六进制表示整数比较方便,十六进制用0x
前缀和0-9,a-f表示,例如:0xff00
,0xa5b4c3d2
,等等。
- 浮点数
浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x109和12.3x108是完全相等的。浮点数可以用数学写法,如1.23
,3.14
,-9.01
,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9
,或者12.3e8
,0.000012可以写成1.2e-5
,等等。
- 布尔值
True和False注意首字母大写。主要应用于判断中。还有就是and or not 这三个联结词,相当于c中的&& || !,可以看出python比较语言化。
-
字符串
(字符串在c中是一个可爱又难搞的东西)字符串是以单引号'
或双引号"
括起来的任意文本。
说到字符串不免想到转义字符,学c时不少在这碰到题。\n
表示换行,\t
表示制表符,字符\
本身也要转义,所以\\
表示的字符就是\
,\"输出双引号,\'输出单引号。
print('I\'m ok.')
print('I\'m learning\nEnglish.')
print('\\\n\\')
print('\\\t\\')
print(r'\\\n\\') #这里的r可以使''中的转义字符不转义,即正常输出。
print('''line1 #用''' '''替换掉
line2
line3''')
运行结果:
I'm ok.
I'm learning
English.
\
\
\ \
\\\n\\
line1
line2
line3
- list和tuple(让我想到了c中的数组)
list:可变有序列表
grade=[10,20,30,40,50]
print(grade)
print('长度:',len(grade)) #计算长度
print(grade[0],grade[1],grade[2],grade[3],grade[4]) #类似于c中数组元素的表示
print(grade[-5],grade[-4],grade[-3],grade[-2],grade[-1]) #最后一个是-1,然后依次往前推
grade.append('haha') #在列表最后添加元素,可以和先前的类型不同
print(grade)
grade.insert(3,35) #在指定位置插入一个元素
print(grade)
grade.pop() #在列表最后删除元素
print(grade)
grade.pop(2) #在列表指定位置删除元素
print(grade)
grade[0]='成绩:'
print(grade)
name=['Bob','Jack']
grade.insert(1,name) #列表元素可以是另一个列表,即列表的嵌套
print(grade)
print('长度:',len(grade))
print(grade[1][0]) #访问name中的Bob,有点类似于二维数组
运行结果:[10, 20, 30, 40, 50]
长度: 5
10 20 30 40 50
10 20 30 40 50
[10, 20, 30, 40, 50, 'haha']
[10, 20, 30, 35, 40, 50, 'haha']
[10, 20, 30, 35, 40, 50]
[10, 20, 35, 40, 50]
['成绩:', 20, 35, 40, 50]
['成绩:', ['Bob', 'Jack'], 20, 35, 40, 50]
长度: 6
Bob
tuple:[tʌpl] 不可变有序列表
无append(),insert(),无法再给元素赋值,无法删除元素和添加元素,特点:安全。(让我想起了const)
grade=(30,(40,50),[60,70])
print(grade)
grade[2][0]=65
print(grade)
grade[1][0]=45
运行结果:
(30, (40, 50), [60, 70])
(30, (40, 50), [65, 70])
Traceback (most recent call last):
File "C:\Users\zjt\Desktop\python\new.py", line 5, in <module>
grade[1][0]=45
TypeError: 'tuple' object does not support item assignment
第三行中更改了tuple中的list,表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的。