Day 03 注释 数据类型
1.注释
注释是对代码的解释与评论,给人看的,python解释器不识别
python有2种注释方式:(1)# 单行注释 (2)''' ''' 多行注释 三引号
2.用户交互
input() 在python3.x中使用方法如下
name = input("what is your name?") print(name)
在python 2.x 中2种使用方法为:
(1)必须认为的告诉input输入的是什么数据类型
name = input("what is your name?") print(name)
D:\python2.7\python.exe D:/py/11.py what is your name?yanglingyao # 输入交互信息 Traceback (most recent call last): File "D:/py/11.py", line 1, in <module> name = input("what is your name?") File "<string>", line 1, in <module> NameError: name 'yanglingyao' is not defined # 报错
D:\python2.7\python.exe D:/py/11.py what is your name? 'yanglingyao' # 声明输入的信息是字符串类型 yanglingyao Process finished with exit code 0
(2)raw_input()
name = raw_input("what is your name?") print(name)
PS: Python3.x中的input() 和 Python2.x中的raw_input() 使用方法是一样的,输入的信息自动保存为字符串类型
3. 格式化输出
(1)%s : 可以接收任意类型的值
name = 'yang' age = 18 print('my name is %s,my age is %s' % (name, age))
D:\python3\python.exe D:/py/11.py my name is yang,my age is 18
(2)%d:值可以接收数字
name = 'yang' age = 18 print('my name is %d,my age is %d' % (name, age))
D:\python3\python.exe D:/py/11.py Traceback (most recent call last): File "D:/py/11.py", line 3, in <module> print('my name is %d,my age is %d' % (name, age)) TypeError: %d format: a number is required, not str # 报错,%d 只能接收数字类型
正确的方法如下:
name = 'yang' age = 18 print('my name is %s,my age is %d' % (name, age)) D:\python3\python.exe D:/py/11.py my name is yang,my age is 18
a = 123 print("%08d" % a) # 整数是8位,传入的数不够八位的话默认用0补全,超出8位,是多少就是多少 D:\python3\python.exe D:/py/11.py 00000123
4.数据类型
1.整形(int)
作用:qq号,手机号等
定义方法:
a = 11
本质:
a = int(11)
2.浮点型 (float) 也就是俗称小数
作用: 纪录体重。薪资等
定义方法:
b = 1.1
本质:
b = float(1.1)
3.字符串(str)
作用:记录一些描述性信息
定义方法:
c = '我是字符串' # 单引号定义 d = "我是'字符串'" # 双引号定义,多用于嵌套,字符串本申含有单引号或双引号 e = ''' 我是字符串 可以存多行 '''
本质:
a = str('我是字符')
python中的字符串支持加和乘操作: 字符串相加是新申请内存空间然后拷贝相加的字符串到新的空间中,效率不高
a = 'yang' b = 'lingyao' c = a + b d = a * 3 print(c) print(d) D:\python3\python.exe D:/py/11.py yanglingyao yangyangyang
4.列表(list)、
作用:记录多个值,可以方便的取出来指定位置一条或多条的值
定义方法:在[ ] 内用逗号分隔开多个任意类型的值
l = ['q', 1, 1.2, ['q', 'w']] # 根据索引取值,第一个索引为0 l1 = l[0] # 取出l 列表第一元素 l2 = l[3][1] # 取出第4个元素中的第2个元素 print(l1, l2) # q w
5.字典(dict)
作用:存取多组数据,存储的数据有对应的描述
定义方法:用{ }来定义,元素的格式为key:value ,也称作键值对,每个键值对中间用,隔开 其中key必须是不可变类型,value可以是任意类型 如:
d1 = { 'name': 'yanglingyao', # 一对键值对 'age': 18, 'addr': '山西', 'hobby': ['听歌', '旅游'] }
注:字典是无序的,所以不能根据索引取值,,只能通过键(key)来访问值(value) 如:
print(d1['age']) # 取出字典中key为 age 的值 print(d1['hobby'][1]) # 取出字典中key 为hobby 的值中第二个元素
18
旅游
6.布尔值(bool)
作用:表示事物的对错,真假, True(真) False(假)
定义方式:
t = False
t1 = True
5. 运算符
1:基本运算符:
"+"(加) “-”(减)“*”(乘)“/”(除) “//”(地板除,也就是值保留整数位,与四舍五入无关) ‘**’(幂运算)"%"取模运算,也就是取余数
print(4 + 5) # 9 print(5 - 4) # 1 print(4 * 5) # 20 print(6 / 3) # 2.0 不管操作数有没有浮点数,都是浮点数除法 在python2.x中相当于3 的地板除 print(6 // 4) # 1 向下取整,与四舍五入无关 地板除 print(6 ** 2) # 36 6的2次方 print(6 % 4) # 2 取模运算,也就是取余数
2. 比较运算符:
“>”(大于) “<”(小于)"<="(小于等于) ">="(大于等于) "=="(判断值是否相等) "!="(不等于) 结果都为True或False
print(1 > 3) # False print(1 < 3) # True print(1 >= 3) # False print(1 <= 3) # True print(1 == 3) # False print(1 != 3) # True
关于 == 与is 的区别 == 比较的是值是否相等,is 比较的是内存地址是否相同
a = 17 b = 17 print(a == b, a is b) # True True 因为涉及小整数池概念,-5~256都是固定的内存地址所以都为True c = 1000 d = 1000 print(c == d, c is b ) # True False
由此可见:内存地址相同,值一定相同,值相同,内存地址不一定相同
3.逻辑运算符:
"and" (与:有一个条件为False,则为False,条件都为True,才为True)
"or" (或:任意一个条件为True,则为True,条件都为False,才为False)
“not” (非:取反)
print(1 > 3 and 4 > 3) # False print(4 > 3 and 5 > 3) # True print(1 < 3 or 4 < 3) # True print(1 > 3 or 2 > 3) # False print(not 1 < 3) # False print(not 1 > 3) # True
4.赋值运算符:
- 增量赋值:
age = 18 age += 1 # 相当于 age = age + 1 print(age) # 19 age *= 1 # 相当于 age = age * 1 print(age) # 19 age -= 1 # 相当于 age = age - 1 print(age) # 18 age /= 1 # 相当于 age = age / 1 print(age) # 18.0
-
x = y = z = 18 ''' 相当于 x = 18 y = x z = x ''' print(x, y, z) # 18 18 18
- 交叉赋值:
x = 18 y = 19 x, y = y, x # Python 提供的一种语法 print(x, y) # 19,18
同样可达到此目的的方法有:
x = 18 y = 19 z = x x = y y = z print(x, y)
- 解压赋值:
list1 = [1, 2, 3, 4, 5] l1, l2, l3, l4, l5 = list1 # 等号右边值的个数必须与左边的变量名个数一致 print(l1, l2, l3, l4, l5) # 1 2 3 4 5
当其中有些值不需要使用的话,用‘_’ (下划线)充当变量名
list1 = [1, 2, 3, 4, 5] l1, _, _, _, l5 = list1 # 等号右边值的个数必须与左边的变量名个数一致 用下划线来储存不需要取出的值 print(l1, l5) # 1,5
当需要取出头尾而不知道右边值有多少个的时候用“*_”来代替
list1 = [1, 2, 3, 4, 5] l1, *_, l5 = list1 # 等号右边值的个数必须与左边的变量名个数一致 用下划线来储存不需要取出的值 print(l1, l5) # 1,5 print(*_) # 2,3,4