今天主要讲的是python的注释、用户的交互方式、python基本数据类型、运算符的知识点。
注释就是对代码的解释,python解释器不识别它,大项目中的注释可以给程序员带来很多方便。
我们通常有两种注释方式:一个是用 # 作为单行注释,另一个是用三引号作为多行注释(可以是三个单引号,也可以是三个双引号)。
输入方面,也有不同。
python3.x版本解释器中的输入关键字input()获取的用户输入统一全部存成字符串类型,如下代码中[1,2,3,4]本因是list数据类型却被存成str类型。
>>> name=input('please input:')
please input:jason
>>> name
'jason'
>>> type(name)
<class 'str'>
>>> name=input('please input:')
please input:[1,2,3,4]
>>> name
'[1,2,3,4]'
>>> type(name)
<class 'str'>
python2.x版本解释器中的输入关键字input()则需要人为告诉input,程序员输入的是什么类型的数据类型,如下代码中在仅仅输入jason而不是'jason'时就会出现NameError: name 'jason' is not defined的错误,且输入[1,2,3,4]数据时就是我们认知的list类型数据。
>>> name=input('please input:')
please input:jason
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in <module>
NameError: name 'jason' is not defined
>>> name=input('please input:')
please input:'jason'
>>> name
'jason'
>>> type(name)
<type 'str'>
>>> name=input('please input:')
please input:[1,2,3,4]
>>> name
[1, 2, 3, 4]
>>> type(name)
<type 'list'>
而raw_input()会将用户输入的数据统一也存为字符串形式。
>>> name=raw_input('please input:') please input:jason >>> name 'jason' >>> type(name) <type 'str'> >>> name=raw_input('please input:') please input:[1,2,3,4] >>> name '[1,2,3,4]' >>> type(name) <type 'str'>
我们要知道,用户输入的一般都是字符串形式;另外代码一旦被改动,就必须重新执行一下所改动的py文件,否则程序执行的还是你未改动之前的代码。
格式化输出方面,我们给定两个需要输入的值,name、age。
下图中是最直接的先输出name,再输出age:
# my name is 用户输入的用户名 my age is 用户输入的年龄 name = input('username:') age = input('age:') print(name) print(age)
接着是另一种看似改变了形式的输出方式:
# my name is 用户输入的用户名 my age is 用户输入的年龄 name = input('username:') age = input('age:') print(name,age)
我们会发现它们的输出结果格式是相同的:
因为input自带换行作用,通常一个print独占一行。那么,我们再试试加入占位符%s、%d:
# my name is 用户输入的用户名 my age is 用户输入的年龄 name = input('username:') age = input('age:') print('my name is %s my age is %s'%(name,age))
这个结果不难看出,输出结果与%(name,age)相对应。
# my name is 用户输入的用户名 my age is 用户输入的年龄 name = input('username:') age = input('age:') print('my name is %s my age is %s'%(age,name))
这个结果我们发现,占位符的作用就是谁在前面就是谁先输出,它的个数必须一致。%d只能给数字占位,%s可以给任意数据类型占位。
另外,关于print(‘%08d’%123),整数是8位,传入的数不够8位的话默认用0补全,超出8位时,是多少就是多少。
数据类型
数据是衡量/记录事物的状态/特征,不同的数据应该有不同的存储类型。
- int整型,float浮点型,str字符
- list[ ]列表 # 在it行业,通常数据索引都是从0开始的
- bool布尔类型:比较 值 时用'==';比较 id 时用'x is y',这个is比较的是两个变量对应的id是否相等,且id相等的情况下,值一定相等;而id不相等的情况下,值有可能相等。
- long长整型只有python2.x里面才用
- dict{ }字典(很重要的知识点):
-
- 能够存储多组数据,存取的数据有对应的描述,可以明确表示数据表示什么;
- 大括号内村多个元素,元素的格式key:value形式存储,键值对与键值对之间用逗号隔开;
- key通常是描述vale的描述性信息,key通常存的是字符串;
- value就是描述性信息对应的真实的数据;
- 字典是无序的且暴露给用的可以操作的部分只有key,无法直接获取到value。
运算符
算术运算
- print(10/3) 结果保留小数部分
- print(10//3) 结果只保留整数部分
- print(10%3) 结果取余数
- print(10**3) 10的三次方
比较运算:==,!=,>,<,>=,<=,其中!=表示不等于。
比如print(10 > 3)、print(10 > 3.1)、print(10 != 9),数字之间是可以互相比较大小的。
关于字符串方面:
# a = 'hello'
# b = 'z'
# print(b > a)
这个就运用到ASCLL码,而且A-Z、a-z中z对应的数字最大,A对应的数字最小。
赋值运算:a = 10,b = 20这种就行。
- 增量赋值:x += 1相当于x = x + 1
- 链式赋值:o = m,m = n,n = o
- 交叉赋值:m,n = n,m
- 解压赋值:l = [1,2,3,4]
a = l[0]
b = l[1]
c = l[2]
d = l[3]
a,b,c,d = l # 前面的变量个数与后面的元素个数必须相等
若a,_,_,d = l
print(a,d)结果为[1,4]
print(_)结果为[3]
若a,*_,d = l
print(_)结果为[2,3] # 这种情况也适用于超长列表
逻辑运算
- 与and;或or;非not
- print(1 >0 and 3>4) # and两边必须同时成立才会true
- print(1 > 0 or 1 > 0 and 3>4) # 只要有一边成立就全部成立true
- print(not 1 > 3) # 结果为true