Python程序的构成: 模块 语句 表达式 对象
程序由模块构成
模块包含语句
语句包含表达式
表达式建立并处理对象
操作符
对象值得比较
比较操作符用来判断同类对象是否相等,是对象值得比较,返回布尔值True和False
- < 小于
- > 大于
- <= 小于等于
- >= 大于等于
- == 等与
- != 不等于
对象身份得比较
对象身份比较主要是测试两个变量是否指向同一个变量
- is 是同一个对象
- is not 不是同一个对象
逻辑操作符
- not 逻辑非
- and 逻辑与
- or 逻辑或
数据类型
int: 1,2,4 用于数据运算
bool: 主要用户判断 True Flase
str: 储存小的数据,进行操作
list: 存储大量数
元祖:只读列表
dict: 字典,存储关系型数据
集合:
一:int数据类型
#####is系列 name='wangys123' print(name.isalnum()) #字符串由字母或数字组成 print(name.isalpha()) #字符串只由字母组成 print(name.isdigit()) #字符串只由数字组成
四 元祖
元祖被成为只读列表,只能查询,不能被修改
五:join方法
name = 'wangys' name1='#'.join(name) print(name1)
num = ['wagys','lala'] num1='_'.join(num) print(num1)
使用split将字符串转换为列表,使用join方法可以将列表转换为字符串
names = 'wangys#wangc#lala' print(names.split('#')) names=['wangys', 'wangc', 'lala'] print(''.join(names))
六 range
可以将range看作是一个数字列表
# 顾首不顾尾
for i in range(0,5): print(i) for i in range(5): print(i)
for i in range(2,5): print(i)
for i in range(0,10,3): print(i)
for i in range(10,5,-2): print(i)
# 不用有输出
for i in range(0,10,-2): print(i)
# 列表嵌套,循环打印
names = ['wangys','xiaogongzu',[1,'caomei']] for i in names: if type(i) == list: for j in i: print(j) else: print(i)
names = ['wangys','xiaogongzu',[1,'caomei']] for i in range(len(names)): if type(names[i]) == list: for j in range(len(names[i])): print(j) else: print(names[i])
七:字典
#数据类型划分:可变数据类型,不可变数据类型
不可变数据类型:元组,bool int str 可哈希
可变数据类型:list,dict set 不可哈希
dict key 必须是不可变数据类型,可哈希,
value:任意数据类型。
dict 优点:二分查找去查询
存储大量的关系型数据
特点:无序的
7.1 字典增
7.1.1 如下方法,若字典里没有该key-value则增,如果有则覆盖
dic1 = {'name':'wangys','age':18} dic1['sex'] = 'male' print(dic1)
dic1 = {'name':'wangys','age':18} dic1['name'] = 'wangc' print(dic1)
7.1.2 setdefault
如果不添加value,则为None
dic1 = {'name':'wangys','age':18} dic1.setdefault('height') print(dic1)
dic1 = {'name': 'wangys', 'age': 18} dic1.setdefault('height',145) print(dic1)
如果有键值对,则不添加
dic1 = {'name': 'wangys', 'age': 18} dic1.setdefault('name','wangc') print(dic1)
7.2 字典删除
按照key删除,并且有返回值,返回值是value
dic1 = {'name': 'wangys', 'age': 18} dic1.pop('age') print(dic1)
如果该Key不存在则报错
dic1 = {'name': 'wangys', 'age': 18} dic1.pop('sdff') print(dic1)
我们可以通过在删除后加一个自定义的值来不让它报错,比如说None
dic1 = {'name': 'wangys', 'age': 18} dic1.pop('sddd',None) print(dic1)
7.3 字典-改
前面增的时候有一个直接添加,如果key存在则更新
另一个是update,将一个字典更新到另一个字典里,有则更新,没有则添加
dic1 = {'name':'wangys','age':18} dic2 = {'name':'wangc','sex':'male'} dic1.update(dic2) print(dic1)
7.4 字典-查
dic1 = {'name': 'wangc', 'age': 18, 'sex': 'male'} print(dic1.keys()) # key的列表 print(dic1.values()) # value的列表 print(dic1.items()) # key value组成元祖的列表
7.4.1 只打印键
dic1 = {'name': 'wangc', 'age': 18, 'sex': 'male'} for i in dic1: print(i) for i in dic1.keys(): print(i)
7.4.2 只打印value
dic1 = {'name': 'wangc', 'age': 18, 'sex': 'male'} for i in dic1.values(): print(i)
7.4.3 打印key value
dic1 = {'name': 'wangc', 'age': 18, 'sex': 'male'} for i in dic1.items(): print(i)
dic1 = {'name': 'wangc', 'age': 18, 'sex': 'male'} for k,v in dic1.items(): print(k,v)
7.4.4 获取一个key的值
dic1 = {'name': 'wangc', 'age': 18, 'sex': 'male'} print(dic1['name']) print(dic1["sdf"]) # 如果没有会报错
dic1 = {'name': 'wangc', 'age': 18, 'sex': 'male'} print(dic1.get('name')) print(dic1.get('sdf'))
推荐使用get,不会报错
7.5 字典-嵌套
# fhdklah123rfdj12fdjsl3 ' 123 12 13' info = input('>>>').strip() for i in info: if i.isalpha(): info = info.replace(i," ") l = info.split() print(len(l))
''' 输出商品列表,用户输入序号,显示用户选中的商品 商品 li = ["手机", "电脑", '鼠标垫', '游艇'] 要求:1:页面显示 序号 + 商品名称,如: 1 手机 2 电脑 … 2: 用户输入选择的商品序号,然后打印商品名称 3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。 4:用户输入Q或者q,退出程序。 ''' Flag=True while Flag: for i in li: print('{} {}'.format(li.index(i)+1,i)) num_of_choice=input("请输入商品序号输入Q或者q退出程序") if num_of_choice.isdigit(): num_of_choice = int(num_of_choice) if num_of_choice >0 and num_of_choice <= len(li): print(li[num_of_choice-1]) else:print("商品不存在,请输入正确的序号") elif num_of_choice.upper() == 'Q':break else:print('请输入数字')