带参数传参
有默认值的参数放到最后
*args不定长参数
可以不给参数,也可以给任意值(只要内存够大)
def joker(*args):
sum_=0
for i in args:
sum_+= i
print(sum_)
joker(1,2,3,4,5,6,7,8)
计算器
sum_=0
xx = 0
while xx != "stop":
xx = input("请输入>>")
if xx != 'stop':
sum_ += float(xx)
print(sum_)
**kwargs不定长参数(带参数)
def joker(*args,**kwargs):
print(args)
print(kwargs)
joker(1,2,3,name=4,b=5,c=6)
print(joker)
答案:
args(1, 2, 3)
kwargs{'name': 4, 'b': 5, 'c': 6}
if__name__==“mian”
当你要在其他py文件中引用本文件中的函数或任何东西,如果你不想在其他文件中运行某些代码是可以使用
global 声明接下来用全局变量
全局变量不能再局部被修改但是加global后就可以修改
a = 1000
def A():
global a
a += 1000
print(a)
A()
答案:2000
.
随机点名练习
import random
def A():
a = ['a','b','c']
index = random.randint(0,len(a)-1)
print(a[index])
A()
匿名函数
lambda
(lambda x,y:print(x,y))(100,10)
冒号前的为输入,冒号后的为输出
key指定以什么方式进行排序
a = [['a',100],['c',5],['b',46]]
print(sorted(a,key=lambda x:x[1]))
答案:[['c', 5], ['b', 46], ['a', 100]]
**
字符串的使用’ ’
**
str1 = ‘hello, world!’
●字符串的拆分
res.str1.split(’,’)(以逗号拆分)
●通过len函数计算字符串的长度
print(len(str1)) # 13
● # 从字符串中查找子串所在位置(index与find类似但 是找不到时会引发异常
print(str1.find(‘or’)) # 8
print(str1.find(‘shit’)) # -1
●# 检查字符串是否以指定的字符串开头
print(str1.startswith(‘He’)) # False
print(str1.startswith(‘hel’)) # True
●# 检查字符串是否以指定的字符串结尾
print(str1.endswith(’!’)) # True
●# 将字符串以指定的宽度居中并在两侧填充指定的字符
print(str1.center(50, ‘*’))
● # 将字符串以指定的宽度靠右放置左侧填充指定的字符
print(str1.rjust(50, ’ '))
str2 = ‘abc123456’
●# 从字符串中取出指定位置的字符(下标运算)
print(str2[2]) # c
●# 检查字符串是否由数字构成
print(str2.isdigit()) # False
● # 检查字符串是否以字母构成
print(str2.isalpha()) # False
●# 检查字符串是否以数字和字母构成
print(str2.isalnum()) # True
●# 获得字符串修剪左右两侧空格的拷贝
str3 = ’ jackfrued@126.com ’
print(str3)
print(str3.strip())
print(str3.lstrip())
print(str3.rstrip())
删除空格练习
a = ' a b o j h '
b = ''
for i in a:
if i != " ":
b += i
print(b)
答案:abojh
列表的使用[ ]
列表可乘
def main():
list1 = [1, 3, 5, 7, 100]
print(list1)
list2 = ['hello'] * 5
print(list2)
答案:['hello', 'hello', 'hello', 'hello', 'hello']
●# 计算列表长度(元素个数)
print(len(list1))
● # 下标(索引)运算
print(list1[0])
●# 添加元素
list1.append(200)
●# 删除元素
list1.remove(3)
●# 清空列表元素
list1.clear()
列表加
a = [1,2,3]
b = [4,5]
print(a + b)
答案:[1, 2, 3, 4, 5]
列表追加
a = [1,2,3]
a[1] = 200
print(a)
答案:[1, 200, 3]
列表去重
b=[]
for i in a:
if i not in b:
b.append(i)
print(b)
答案[1, 2, 3, 6, 9]
以长度排序
list1 = ['orange','apple','zoo','rtughjgjhjh']
list2 = sorted(list1,key=len)
print(list2)
答案['zoo', 'apple', 'orange', 'rtughjgjhjh']
简写列表生成式
a = [x for x in range(10) if x % 2 == 0]
前边的x为输出
嵌套for循环
a = [[x,y] for x in range(2) for y in range(3)]
print(a)
答案[[0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2]]
生成器generstor
a列表
b生成器
特点:需要一个生成一个,节约内存但是计算速度慢
元组的使用( )
不能修改元组中的内容
ef main():
# 定义元组
t = (‘骆昊’, 38, True, ‘四川成都’)
print(t)
● # 获取元组中的元素
print(t[0])#骆昊
print(t[3])#四川成都
● # 遍历元组中的值
for member in t:
print(member)
#骆昊 38 True 四川成都
●# 将元组转换成列表
person = list(t)
print(person)
●# 将列表转换成元组
fruits_list = [‘apple’, ‘banana’, ‘orange’]
fruits_tuple = tuple(fruits_list)
元组在创建时间和占用空间上都优于列表
集合的使用{ }
性质:互异 无序 确定
set1 = {1, 2, 3, 3, 3, 2}
print(set1)
print('Length =', len(set1))
答案{1, 2, 3}
Length = 3
set2 = set(range(1, 10))
print(set2)
答案{1, 2, 3, 4, 5, 6, 7, 8, 9}
set1 = {1, 2, 3, 3, 3, 2}
set1.add(4)
print(set1)
答案{1, 2, 3, 4}
●#将元组转换成集合
set3 = set((1, 2, 3, 3, 2, 1))
print(set3.pop())
print(set3)
●# 集合的交集、并集、差集、对称差运算
print(set1 & set2)
# print(set1.intersection(set2))
print(set1 | set2)
# print(set1.union(set2))
print(set1 - set2)
# print(set1.difference(set2))
print(set1 ^ set2)
# print(set1.symmetric_difference(set2))
字典的使用{key:value}
当键名重复时后者覆盖前者
def main():
scores = {‘骆昊’: 95, ‘白元芳’: 78, ‘狄仁杰’: 82}
●# 通过键可以获取字典中对应的值
print(scores[‘骆昊’])
print(scores[‘狄仁杰’])
● # 对字典进行遍历(遍历的其实是键再通过键取对应的值)
for elem in scores:
print(’%s\t—>\t%d’ % (elem, scores[elem]))
●# 更新字典中的元素
scores[‘白元芳’] = 65
scores[‘诸葛王朗’] = 71
scores.update(冷面=67, 方启鹤=85)
print(scores)
if ‘武则天’ in scores:
print(scores[‘武则天’])
print(scores.get(‘武则天’))
● # get方法也是通过键获取对应的值但是可以设置默认值
print(scores.get(‘武则天’, 60))
●# 删除字典中的元素
print(scores.popitem())
print(scores.popitem())
print(scores.pop(‘骆昊’, 100))
● # 清空字典
scores.clear()
print(scores)
●弹出一个元素
scores.pipitem()随机弹出
scores.pip(‘白元芳’)指定弹出
●字典可循环
for i in scores:(出来的是键名)
●取出键
scores.keys()
●取出键值
scores.values()