9.26总结
-
python基本数据类型
-
整型int
整数:年龄、班级、年份 year = 2022 print(type(year)) <class 'int'> -
浮点型float
小数:身高、体重、薪资 height = 1.68 print(type(height)) <class'float'> -
字符串str
文本类型:引号里的全是字符串 名字、地址。。。。 name = 'ZhangGaoLi' print(type(name)) <class'str'> ps1:我们在字符串中编写文本可能也会用引号,为了避免冲突。外面用双引号里面就用单引号。。。 ps2:区分字符串还是注释 看左边有赋值符号或者变量名,则是字符串没有则是注释 -
列表list
存储多个数据—还能快速提取 number = [1, 2, 3, 4, 5, 6, 7, 8, 9] print(type(number)) <class'list'> ps:列表最常用python数据类型,用方括号括起来里面数 据用逗号+空格隔开。 列表索引是从0开始 -
字典dict
能非常精确的存储和表达数据的含义 info_dict = { 'name':'dd', 'age':'18' } print(type(info_dict)) print(info_dict('name')) <class'dict'> dd ps:每个键与值用冒号隔开,每对后面用逗号隔开,整体 放在{} 值可以取任何数据类型,必须是不可变的,如字符 串、数、元组。 键独一无二的,值不必。 -
布尔值bool
用来判断事物的对错、是否可行、只要用于流程控制中 只有两种状态 True:对的、真的、可行的 False:错的、假的、不可行的 python所以数据都自带布尔值 布尔值为False的数据:0 None''[]{} 布尔值为True的数据:除看上面的都是True is_delete = false is_alive = True """ 很多程序中提供的注销账户的功能 其实底层并没有删除数据 而是修改了数据的状态 id username password phone is_delete 1 jason 123 110 1 2 kevin 321 120 0 """ -
元组tuple
-
不可变的列表
- 元组内索引绑定的内存地址不能修改
-
小括号括起来,内部存放多个数据值,数据值之间逗号隔开,数据值可以是任何数据类型。
-
代码实现
T1 = (11,22,'jason')- 元组与列表对比
# l1 = [11, 22, 33] # print(l1[0]) # 获取索引0对应的数据值 # l1[0] = 666 # print(l1) # [666, 22, 33] # t1 = (11, 22, 33) # print(t1[0]) # t1[0] = 999 # print(t1) t1 = (11, 22, [111, 222]) t1[2][1] = 666 print(t1) """ A.直接报错 B.(11, 22, [111, 666]) C.不知道 超出了我的认知 """![]()
- 元组内如果只有一个数值
t1 = (1) t2 = (11.11) t3 = ('jason') print(type(t1), type(t2), type(t3)) # <class 'int'> <class 'float'> <class 'str'> t1 = (1,) t2 = (11.11,) t3 = ('jason',) print(type(t1), type(t2), type(t3)) # <class 'tuple'> <class 'tuple'> <class 'tuple'> """ 建议:以后在使用可以存放多个数据值的数据类型时 如果里面暂时只有一个数据值 那么也建议你加上逗号 """ -
-
集合set
- 集合只能用于去重和关系运算
- 集合内数据只能是不可变类型
- 大括号括起来、内部存放多个数据值、数据值与数据值之间逗号隔开,数据值不是K:V值对
- 代码实现
- S1 =
- 定义空集合与空字典
- {}:默认是字典
- set():定义空集合
-
-
与用户交互
""" 以前银行取钱只能拿着存折去柜台跟工作人员交流才可以 你想干嘛 我想取钱 请输入密码 滴滴滴密码 想取多少钱 我想取一个亿 ... 随后程序代替了工作人员直接跟我们交互 ATM机器 """ 1.获取用户输入 input # 获取用户输入 username = input('请输入您的用户名>>>:') """ 1.先执行input获取用户输入 2.将输入的数据绑定给变量名username 3.以后在程序中就可以使用变量名反复调用用户数据 """ 强调:input获取到的数据都会统一处理成字符串类型 2.输出内部信息 print 1.括号内既可以放数据值也可以放变量名 并且支持多个 逗号隔开即可 2.print自带换行符 换行符:\r\n \n(斜杠与字母组合到一起可能会产生特殊的含义) 3.print也可以切换结束符 print(数据,end='默认是\n') 扩展:python2与python3中两个关键字的区别 python2中 input方法需要用户自己提前指定数据类型 写什么类型就是什么类型 raw_input方法与python3中input一致 输入的统一处理成字符串 python2中 print方法有两种使用方式 print 数据值 print(数据值) -
格式化输出
提前定义好一些内容 将来需要使用的时候可以局部修改 eg:奖状、录取通知书、合同 代码实现 在现实生活中大部分情况下使用下划线提示别人填写内容 但是在程序中需要使用占位符:%s %d info = '%s同志你好' '''单个占位符''' # print(info % 'Jason') # Jason同志你好 # print('%s同志你好' % 'Tony') # Tony同志你好 # print(info % ('jason',)) # print('%s同志你好' % ('Tony',)) '''多个占位符''' # desc = '姓名:%s 年龄:%s 爱好:%s' # print(desc % ('jason', 18, 'read')) # print('姓名:%s 年龄:%s 爱好:%s' % ('tony', 28, 'rap')) '''注意事项:有几个占位符就需要几个数据值''' # print('my name is %s my age is %s' % ('jason',)) # 少了不行 # print('my name is %s my age is %s' % ('jason', 18, 'read')) # 多了不行 '''不同占位符的区别''' # demo1 = '%s您好 您本月的话费是%s 余额是%s' # %s常见数据类型都支持 # print(demo1 % ('jason', 100, 10000000000000)) # demo2 = '%d您好 您本月的话费是%d 余额是%d' # %d只支持数字类型 # print(demo2 % ('tony', 1000000000, -100000)) print('%08d'% 123) # 00000123 print('%08d'% 1234324324) # 1234324324 -
基本运算符
-
数学运算符
![]()
简化写法 n = 10 n += 1 # n = n + 1 n -= 1 # n = n - 1 n *= 1 # n = n * 1 n /= 1 # n = n / 1 n %= 1 # n = n % 1 n //= 1 # n = n // 1 n **= 1 # n = n ** 1 -
比较运算符
![]()
-
-
多种赋值方式
-
链式赋值
name = 'jason'
name1 = name
name2 = namename = name1 = name2 = 'jason'
-
交叉赋值
m = 100 n = 999 1.'''方式1:采用中间变量''' # temp = m # m = n # n = temp # print(m, n) # 999 100 2. '''方式2:交叉赋值语法''' m, n = n, m print(m, n) # 999 100- 解压赋值
name_list = ['jason', 'kevin', 'tony', 'oscar'] '''low的写法''' # name1 = name_list[0] # name2 = name_list[1] # name3 = name_list[2] # name4 = name_list[3] '''解压赋值语法''' # name1, name2, name3, name4 = name_list '''解压赋值在使用的时候 正常情况下需要保证左边的变量名与右边的数据值个数一致''' # a, b = name_list # 变量名少了不行 # a, b, c, d, e = name_list # 变量名多了也不行 '''当需要解压的数据个数特别多 并且我们只需要使用其中的几个 那么可以打破上述的规则''' # a, *b = name_list # *会自动接收多余的数据 组织成列表赋值给后面的变量名 # print(a) # jason # print(b) # ['kevin', 'tony', 'oscar'] # a, c, *b = name_list # print(a) # print(c) # print(b) # ['tony', 'oscar'] # a, *b, c = name_list # print(a) # jason # print(b) # ['kevin', 'tony'] # print(c) # oscar '''当数据值不准备使用的时候 可以使用下划线作为变量名绑定''' a, *_, c = name_list -
-
逻辑运算符
-
主要是配合条件一起使用
-
and 与 and连接的多个条件必须全部成立,结果才能成立
-
or 或 or连接的多个条件只要有一个成立,结果就是成立
-
not 非 取反 说反话
-
""" 三者混合使用的时候有优先级之分 但是我们不需要记忆优先级 应该通过代码的形式提前规定好优先级 eg: 先乘除有加减 但是可以使用括号来改变优先级 (3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3 >3) """
-
-
成员运算符
判断个体在不在群体内 # name_list = ['jason', 'kevin', 'oscar', 'jerry'] # print('tony' in name_list) # False # print('tony' not in name_list) # True # print('j' in name_list) # False 列表最小单位是数据值 不能再细分 # s1 = 'hello world' # print('d' in s1) # True 字符串最小单位是单个单个的字符 d1 = { 'username': 'jason', 'pwd': 123 } print('jason' in d1) # False 字典成员运算只有键参与 print('username' in d1) # True 'username' 'pwd' -
身份运算符
""" id() 返回一串数字 该数字可以看成是内存地址 """ 1.is:判断内存地址是否相同 2.==:判断数据值是否相同 l1 = [11, 22, 33, 44, 55, 66, 77, 88] l2 = [11, 22, 33, 44, 55, 66, 77, 88] print(l1 == l2) # True print(id(l1)) print(id(l2)) print(l1 is l2) # False # 小整数池 i1 = 11 i2 = 11 print(i1 is i2) # True s1 = 'jason jason jason' s2 = 'jason jason jason' print(s1 is s2) # True 不同的环境下可能优化的程度不一样 """ 了解 值相同 内存地址可能不同 内存地址相同 值肯定相同 """课后习题
1.获取用户输入并打印成下列格式
------------ info of Jason -----------
Name : Jason
Age : 18
Sex : male
Job : Teacher
---------------- end -----------------
解析:
info_demo = '''
------------ info of %s -----------
Name : %s
Age : %s
Job : %s
---------------- end -----------------
'''
username = input('username>>>:')
Age = input('Age>>>:')
Job = input('Job>>>:')
print(info_demo % (username, username, Age, Job))
2.准备说出下列变量名v绑定的结果
v1 = 1 or 3
print(v1) # 1
v2 = 1 and 3
print(v2) # 3
v3 = 0 and 2 and 1
print(v3) # 0不成立
v4 = 0 and 2 or 1
print(v4) # 1
v5 = 0 and 2 or 1 or 4
print(v5) # 1
v6 = 0 or False and 1
print(v6) # false 不成立



浙公网安备 33010602011771号