1. 函数和模块的使用
1)定义函数
在Python中可以使用`def`关键字来定义函数
在函数名后面的圆括号中可以放置传递给函数的参数
而函数执行完成后我们可以通过`return`关键字来返回一个值
在不影响代码执行结果的前提下对代码的结构进行调整------代码重构
函数结构
def defineName([params]): ...........
#执行体 ........... return ..... 调用: defineName([params])
Python的函数拓展
# 在参数名前面的*表示args是一个可变参数
# 即在调用add函数时可以传入0个或多个参数
函数使用小窍门:
1.首先要会写出裸代码,然后看看哪里是重复需要使用
2.接下去将需要重复使用的代码转换成参数,带入到函数中.
扫描二维码关注公众号,回复:
6924662 查看本文章
函数使用经典例子
例1:订货单(要求按条件进行,查看是否存在货物,然后填写订单,发货)
输入信息需要合法验证
def Address(): print('请填写信息') print('请输入姓名:') name=input('Name') print('请输入电话:') phone=input('phone') print('请输入地址:') Addr=input('Addr') res=check_Information(name,phone,Addr) if res: Note() return False def Note(): print('提交订单,马上发货') def Start(): print('欢迎光临') g=input('商品:') check(g) Start()
例子2 用户注册实例(包含验证码)
global_connt = 0 def User(): user_ = input('User:>>') Z ='QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm' N ='1234567890' T ='.*&^%$#@!~' is_Z = False is_N = False is_T = True for i in user_: if i in Z: is_Z = True if i in N: is_N = True if i in T: is_T = True if is_Z and is_N and is_T: Password() else: print('账号必须还有字母数字且不能还有(.*&^%$#@!~)') def Password(): Passwd = input('请输入密码:>>') if len(Passwd)<6: print('密码必须大于6位') else: phone() def phone(): phone = input('请输入电话号码') if len(phone)!=11: print('电话号码无效') else: print('验证码已发送') Verfily_number() def Verfily_number(): #声明变量为全局 global global_connt import random import time num = random.randrange(1000,9999) global_connt += 1 start_time =time.time() print('系统验证码为验证码是:%d'%num) num_ = int(input('请输入证码:')) end_time = time.time() sub_time =end_time-start_time if sub_time > 10: if global_connt >2: print('您可能是一个机器人') exit() print('验证码超时,即将重发...') time.sleep(2) Verfily_number() else: if num == num_: print('验证成功') else: print('验证码错误') time.sleep(2) Verfily_number() def Start(): print('请注册个人信息') User() Start()
2. 字符与字符结构
def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的拷贝 print(str1.capitalize()) # Hello, world! # 获得字符串变大写后的拷贝 print(str1.upper()) # HELLO, WORLD! # 从字符串中查找子串所在位置 print(str1.find('or')) # 8 print(str1.find('shit')) # -1 # 与find类似但找不到子串时会引发异常 # print(str1.index('or')) # print(str1.index('shit')) # 检查字符串是否以指定的字符串开头 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[2:5]) # c12 print(str2[2:]) # c123456 print(str2[2::2]) # c246 print(str2[::2]) # ac246 print(str2[::-1]) # 654321cba print(str2[-3:-1]) # 45 # 检查字符串是否由数字构成 print(str2.isdigit()) # False # 检查字符串是否以字母构成 print(str2.isalpha()) # False # 检查字符串是否以数字和字母构成 print(str2.isalnum()) # True str3 = ' [email protected] ' print(str3) # 获得字符串修剪左右两侧空格的拷贝 print(str3.strip()) if __name__ == '__main__': main()