01-元组tuple
对比:列表[]
1.1 元组()
1.2 元组特点:
1).元组元素不可修改
2).元组()表示
3).常量设置显示条目数
4).元组一般设置为全局
1.3访问元组: 通过下标
1.4 修改元组: 不可修改
1.5 内置函数 index count
"""
01-tuple 元组
"""
name = (18,"susu","女")
# 1.访问元组(通过下标)
print(name[0]) # 18
# 2.修改元组(不可修改)
# name[0] = 20
# TypeError: 'tuple' object does not support item assignment
# 3.内置函数 index count
# 返回下标
print(name.index("女")) # 2
# print(name.index("男")) # ValueError: tuple.index(x): x not in tuple
print(name.count("女")) # 1
print(name.count("男")) # 0
02-字典dict
dict===>map
2.1 字典格式{}
2.2 key:value
2.3 字典实际应用
1)字典与列表嵌套使用
2) json数据解析
3) XML 数据设置
2.4 字典常见操作1
2.5 字典常见操作2
2.6 字典遍历
枚举enumerate
2.7 字典特点
1)字典key值唯一性
"""
02-字典
"""
students = {"id": "1001", "name": "吉xx", "address": "弘景大道"}
# 1.访问字典
# 1.1 根据键访问值
print(students["id"]) #1001
# print(students["sex"]) # KeyError: 'sex'
# 2.修改字典元素
students["name"] = "susu"
print(students)
# {'id': '1001', 'name': 'susu', 'address': '弘景大道'}
# 3.添加元素
students["sex"] = "女"
print(students)
# {'id': '1001', 'name': 'susu', 'address': '弘景大道', 'sex': '女'}
# 4.删除字典元素del clear()
del students["sex"]
print(students)
# {'id': '1001', 'name': 'susu', 'address': '弘景大道'}
# 5.清空
students.clear()
print(students) # {}
03-字典常见操作
"""
03-字典常见操作
"""
student = {"id":"1001","name":"吉xx","sex":"女"}
# 1.len()
print("len函数:", len(student)) # len函数: 3
# 2.keys() 获取所有的key
print("keys函数:", student.keys())
# keys函数: dict_keys(['id', 'name', 'sex'])
# 3.values() 获取所有的values
print("values函数:", student.values())
# values函数: dict_values(['1001', '吉xx', '女'])
# 4.items() 获取所有的键值对
print("items函数:", student.items())
# items函数: dict_items([('id', '1001'), ('name', '吉xx'), ('sex', '女')])
item = student.items()
for it in item:
print(it[0])
print(it[1])
"""
# print(it[0])
id
name
sex
"""
"""
# print(it[1])
1001
吉xx
女
"""
# 5.has_key python 2.7版本有
04-字典遍历
"""
04-字典遍历
"""
students = {"id":"1001","name":"吉xx","sex":"女"}
# 1.遍历key
for key in students.keys():
print("key:",key)
"""
key: id
key: name
key: sex
"""
# 2.遍历value
for value in students.values():
print("value:",value)
"""
value: 1001
value: 吉xx
value: 女
"""
# 3.遍历键值对
for item in students.items():
print("item:",item)
"""
item: ('id', '1001')
item: ('name', '吉xx')
item: ('sex', '女')
"""
# 4.遍历key-value
for key,value in students.items():
print("%s:%s" %(key, value))
"""
id:1001
name:吉xx
sex:女
"""
# 5.遍历enumerate枚举
for i,key in enumerate(students.keys()):
print("%d %s"%(i,key))
"""
0 id
1 name
2 sex
"""
# 5.遍历enumerate枚举
for i, value in enumerate(students.values()):
print("%d %s" % (i, value))
"""
0 1001
1 吉xx
2 女
"""
05-homework
# 作业
str = input("请输入一串字符 ")
info = {}
for s in str:
if s != " ":
num = str.count(s)
info["%s"%s] = num
print(info.items())
for key,value in info.items():
print("%s:%s"%(key,value), end=" ")
"""
请输入一串字符 hello world
dict_items([('h', 1), ('e', 1), ('l', 3), ('o', 2), ('w', 1), ('r', 1), ('d', 1)])
h:1 e:1 l:3 o:2 w:1 r:1 d:1
"""
06-公共方法
6.1 + 合并
字符串、列表、元组
6.2 * 复制
字符串、列表、元组
6.3 in 存在
字符串、列表、元组、字典
6.4 not in 不存在
字符串、列表、元组、字典
"""
06-公共方法
"""
# 1. + 合并
str1 = "你好啊"
str2 = "xx学院"
str3 = str1 + str2
print("字符串合并:", str3) # 字符串合并: 你好啊xx学院
# 列表
lt1 = [32, 48]
lt2 = [99, 77]
lt3 = lt1 + lt2
print("列表合并:", lt3) # 列表合并: [32, 48, 99, 77]
# 元组
tp1 = (32, "男")
tp2 = (18, "女")
tp3 = tp1 + tp2
print("元组合并:", tp3) # 元组合并: (32, '男', 18, '女')
# 2. * 复制
str1 = "好帅呀"
print("字符串复制:", str1*10)
'''字符串复制: 好帅呀好帅呀好帅呀好帅呀好帅呀好帅呀好帅呀好帅呀好帅呀好帅呀'''
lt1 = [32, 48]
print("列表复制:", lt1*5)
'''列表复制: [32, 48, 32, 48, 32, 48, 32, 48, 32, 48]'''
tp1 = (32, "男")
print("元组复制:", tp1*5)
'''元组复制: (32, '男', 32, '男', 32, '男', 32, '男', 32, '男')'''
# 3. in 是否存在
str1 = "hello world"
print("in元素存在", "h" in str1)
'''# in元素存在 True'''
# 4. not in 是否不存在
str2 = "hello world"
print("in元素存在", "k" in str2)
'''in元素存在 False'''
07-内置函数
7.1 cmp() 比较函数
7.2 len() 获取元素长度
7.3 max()获取元素最大值
7.4 min()获取元素最小值
7.5 del 删除元素或变量
"""
07-内置函数
"""
# 1.cmp python2.X有
str1 = "hello"
str2 = "hello"
# print("cmp函数:",cmp(str1,str2))
print("比较:", str1 == str2) # 比较: True
print(id(str1)) # 2525132399592
print(id(str2)) # 2525132399592
08-名片管理器
'''
08-名片管理器
'''
import sys
# 1.设置列表
names = []
# 2.死循环
while True:
# 提示
print("="*20)
print("1.添加名片")
print("2.删除名片")
print("3.修改名片")
print("4.查询名片")
print("5.退出系统")
print("="*20)
# 命令输入
num = int(input("请选择功能"))
# 判断 pass代表省略代码
if num == 1:
# 3.名片输入提示
name = input("请输入姓名")
QQ = int(input("请输入QQ"))
phone = int(input("请输入电话"))
address = input("请输入地址")
# 4.将变量存储到字典中
nameDict = {}
nameDict["name"] = name
nameDict["QQ"] = QQ
nameDict["phone"] = phone
nameDict["address"] = address
# 5.将字典存储到列表中
names.append(nameDict)
elif num == 2:
# 删除元素
for i,lt in enumerate(names):
print("%d:%s"%(i,lt))
# 删除列表元素
index = int(input("请输入删除的下标"))
# del pop remove
del names[index]
elif num == 3:
# 修改
# 1.查询
for i,lt in enumerate(names):
print("%d:%s"%(i,lt))
# 2.提示输入下标
index = int(input("请选择下标"))
# 3.修改字典
name = input("请输入姓名")
QQ = int(input("请输入QQ"))
phone = int(input("请输入电话"))
address = input("请输入地址")
names[index]["name"] = name
names[index]["QQ"] = QQ
names[index]["phone"] = phone
names[index]["address"] = address
elif num == 4:
# 查询
for i,lt in enumerate(names):
print("%d:%s"%(i,lt))
elif num == 5:
# break
sys.exit()
else:
print("输入有误,请重新输入")
09-函数定义调用
函数/方法
9.1 函数定义
def 函数名(参数列表):
代码块
9.2 调用函数
函数名()
9.3 注意事项
1)没有def的.py整个代码块执行
2)有def 函数调用函数
3)main函数 程序主入口
4)灰色波浪线代表 函数应该在类中
9.4 函数的参数
1)有参函数
2)无参函数
3)参数调用顺序
没有进行赋值操作 按顺序赋值
有赋值操作 按赋值操作处理
4)形参和实参
形参:被调用函数参数列表
实参:调用函数的参数列表
'''
09-函数定义调用
'''
# 有参函数
def sum(a,b):
print(a+b)
print("a",a)
print("b",b)
# 无参函数
def printInfo():
print("今天差点不上课")
# main函数
# main函数的两边 双下划线
# main函数出来后 左侧有绿色播放按钮
if __name__ == '__main__':
printInfo()
sum(b=5,a=7)
10-函数的返回值
10.1 函数的返回值
1) 返回值函数
2) 无返回值函数
10.2 函数类型
1) 有参有返回值
2) 有参无返回值
3)无参有返回值
4)无参无返回值
''''
10-函数的返回值
'''
# 带饭
# 室友====>函数===>带饭(20)
def eat(money):
# 判断
if money >= 20:
meal = "土豆牛肉盖浇饭"
elif money > 15:
meal = "西红柿炒蛋盖浇饭"
elif money > 10:
meal = "青椒土豆丝盖浇饭"
elif money > 5:
meal = "清汤寡水面"
else:
meal = "大包子"
return meal
if __name__ == '__main__':
meal = eat(8)
print("我今天吃%s,好开心"%meal)
# 我今天吃清汤寡水面,好开心
11-函数的嵌套
11.1 函数的嵌套调用
1)A函数调用B函数
2)AB之间不能互相调用
3)互相调用,内存溢出
"""
11-函数的嵌套
"""
def actionB():
print("B 开始")
print("B 结束")
def actionA():
print("A 开始")
actionB()
print("A 结束")
if __name__ == '__main__':
actionA()
"""
A 开始
B 开始
B 结束
A 结束
"""
12-函数的应用
'''
12-函数的应用
'''
def sum(a,b,c):
return a+b+c
def avg(a,b,c):
return (a+b+c)/3
if __name__ == '__main__':
st = sum(3,4,5)
print("求和:",st) # 求和: 12
av = avg(3,4,5)
print("平均数:",av) # 平均数: 4.0
13-名片管理器2.0
'''
13-名片管理器2.0
'''
# 主函数
def menu():
# 1.列表
global cards
cards = []
# 2.死循环
while True:
# 3.先提示
printMenu()
# 4.输入
num = int(input("请选择菜单选项"))
# 5.业务逻辑结构
if num == 1:
# 6.添加名片
addCard()
elif num == 2:
# 7.删除名片
delCard()
elif num == 3:
# 8.修改名片
updateCard()
elif num == 4:
# 9.查询名片
queryCard()
elif num == 5:
# 10.系统退出
break
else:
print("输入有误,请重新输入")
# 1.选择菜单栏
def printMenu():
print("="*20)
print("1.添加名片")
print("2.删除名片")
print("3.修改名片")
print("4.查询名片")
print("5.系统退出")
print("="*20)
# 2.添加名片
def addCard():
# 1.提示用户输入信息
dictCard = {}
# 2.输入
dictCard["name"] = input("请输入姓名")
dictCard["QQ"] = input("请输入QQ")
dictCard["phone"] = input("请输入电话")
dictCard["address"] = input("请输入地址")
# 3.字典存储列表
cards.append(dictCard)
# 3.删除名片
def delCard():
#1.调用查询
queryCard()
#2.提示用户输入删除下标
index = int(input("请输入删除下标"))
# 3.删除该名片
del cards[index]
# 4.修改名片
def updateCard():
# 1.调用查询
queryCard()
# 2.提示输入修改的下标
index = int(input("请输入修改下标"))
# 3.提示输入名片信息
cards[index]["name"] = input("请输入姓名")
cards[index]["QQ"] = input("请输入QQ")
cards[index]["phone"] = input("请输入电话")
cards[index]["address"] = input("请输入地址")
# 5.查询名片
def queryCard():
for i,card in enumerate(cards):
print("%d:%s"%(i,card))
if __name__ == '__main__':
menu()
14-函数返回值2
'''
14-函数返回值2
'''
def sum(a,b):
return a+10,b+10,30 # 可以返回多个值
if __name__ == '__main__':
tp = sum(3,5) # a=3,b=5,
print(tp)
#(13, 15, 30) 返回了一个元组。
15-缺省值
"""
15-缺省值
"""
# 缺省值
def info(name,age=35):
print(name)
print(age)
# 不定长参数
def message(a,b,*args, **kwargs):
print(a)
print(b)
print(args)
print(kwargs)
# main
if __name__ == '__main__':
info("susu",18) # susu 18
info("张无忌") # 张无忌 35
message(25,38,"张xx","徐xx",name = "刘xx",sex="女" )
"""
message输出:
25
38
('张xx', '徐xx') 元组
{'name': '刘xx', 'sex': '女'} 字典
"""
练习:
1.用函数实现求100-200里面所有的素数
提示:素数的特征是除了1和其本身能被整除,其他数都不能被整除的数
2.请用函数实现一个判断用户输入的年份是否是闰年的程序
提示:1.能被400整除的年份
2.能被4整除,但是不能被100整除的年份
以上2中方法满足一种即为闰年