for 循环控制
for i in range():
print(i)
count = 0
while Ture:
print(count)
count += 1
for i in range():
for j in range(i):
print("*",end='')
print()
fc = 10
fro i in range(fc):
a = fc - i
b = 2*i-1
for j in range(a):
print(' ',end='')
for k in range(1,b):
print('*',end='')
print()
s = 'skdf'
s.find() 查找位置
s.count() 计数
s.split() 切分
s.strip() 去除
s.title() 标题
s.index() 索引
s.replace() 取代
s.isdigit() 数字
s.isalpha() 是字母
s.isalnum() 字母和数字
s.isspace() 空格
s.startswith() 开头
s.endswith() 结尾
s.join() 拼接
s.swapwith() 翻转
s.upper() 全大写
s.lower() 全小写
s.center() 补齐
s.capitalize() 开头大写
s.format()
for i in range(1,10):
for j in range(i):
print("%s*%s=%s"%(i,j,i*j))
print()
print('chen{name}shao{name}age{name}liu{name}pi'.format(name='lius'))
ch = 'dk:kdf:kdfj:kjdf:ne:kd'
print(ch.split(3))
l = ['kdf','sdf','sf','ef']
re = ":".join(l) re = "" # 只能使用在字符串转换
l.append() 添加
l.extend() 打散添加
l.insert() 指定位置添加
del 删除 通用的
l.pop() 删除,默认最后一个
l.remove() 删除 指定删除
l.reverse() 倒叙
l.sort() 正序
l.index() 索引位置
info ={"name":'chen',"age":18,'xes':'male'}
def my_min(x,y):
"""文档解释"""
return x,y 返回值可以是一个或多个
def my_mn():
"""文档解释"""
user = input(">>").strip
pwd = input(">>").strip
return user, pwd # 返回值
函数名定义规范: 见名知意, 函数是单独的一类功能的体现
定义空函数 帮助构建基础架构
def auth_user():
"""user authtication function"""
pass
def download():
"""upload file function"""
pass
def ls():
"""list contents function"""
pass
def cd():
"""change directory"""
pass
函数的调用
函数名() 即调用函数 如 print() 调用打印函数
input() 调用输入函数
定义阶段不检查函数体内的语法, 执行才一并检查运行解释
def foo():
print("in th foo")
bar()
def bar():
print("in the bar")
foo() 这里是调用函数
执行结果
in the foo
in the bar
传参函数
def foo(x,y):
a = input(">>")
b = input(">>")
""" 文档解释"""
print(x,y)
bar(a,b)
函数返回值是元组, 自动生成一个元组 并赋值给函数名
def bar(a,b):
print()
return a,b
函数的参数
参数有两种, 形参与实参(形式参数实际参数)
实参可以是常量, 变量,表达式的任意组合
res = My_min(12,34,4>3,name)
调用时,实际参数赋值给形式参数, 在python中只是单纯的绑定
而对于函数来说, 这种绑定只是在函数运行时生效, 结束后自动解除
重点来了
位置参数, 即是指定位置传参从左到右依次定义参数
凡是这种定义形式的参数都必须传参,否则报错
def register(name,age,sex):
print(name,age,ses)
register() 不传参会报错, 提示缺少三个参数
在调用函数时, 按照从左到右的顺序依次定义实参, 凡是按照这种
都要一一对应传参,否则乱序
关键字参数
关键字参数是key = value的形式, 可以使用不完全关键字参数
完全关键字参数
def register(name,age,sex):
print(name,age,sex)
register(naem="chen",age=18,sex="male")
注意在调用函数时, 关键字位置可以自由变换,多方位
默认参数是在关键字参数前, 传参顺序是做到右依次赋值
register("chen",18,sex="male")
register(name="chen",18,"male") 错误的传参方法
注意 默认参数必须在位置参数之后
参数的值从左到右依次赋值
def foo(arg= x):
print(arg)
默认参数通常是不可变类型
*args
传多参数时, (位置参数,默认参数,*args参数)
*号代表接受多余的参数放到args中, 溢出的...
def register(x,y,z=4,*args):
print(x,y)
print(x,args)
参数1,2,3按照位置赋值给x,y,z 多余的会被* 回收赋值给args
*会把传入的数转成元组
register(1,2,3,4,5,6,7,89,99)
多值是*args就派上用场了
def add(*args):
res=0
for i in args:
res += i
return res
add(1,2,34,5,6,7,9,99)
**kwargs
可变长度的关键字参数, ** 会把参数以字典的形式保存下来,
def foo(x,**kwargs):
print(x)
print(kwargs)
foo(x=2,y=4,z=8)
1
{"z"=8,"y"=4}
**可以接受字典形式,
打散操作
def foo(x,y,z=3):
print(x,y,z)
foo(**{"x":1,"y":2})
1,2,3
结合全部
*args与关键字参数**kwargs通常是结合使用, 那么代表可以
接受任意形式,任意长度的参数
完整写法:
def wrapper(*args,**kwargs):
pass
在函数内用于接受函数传给另一个函数
def wrapper(*args,**kwargs):
func(*args,**kwargs)