Python之路,day4-Python基础
1.集合
2.元组 只读列表,只有count,index2个方法
3.字典
key-value对
1.特性
2.查询速度快,比列表快
python中的hash在同一程序下值相同
python字典中的hash只有key是hash的
hash之后二分查找,劈半劈半
注:只有unicode有encode方法
函数:
1 # 2 def qq(): 3 print("nihao!!!") 4 qq() 5 print(qq()) 6 7 #传参数 8 def aa(name): 9 print("woshi,%s"%name) 10 aa('hsc') 11 12 #传两个参数 13 def aa(name,age,sex='F'): 14 #非默认参数必须放到非默认参数前面 15 #位置参数,非默认参数,name,age 16 #默认参数 sex ... 17 print("woshi,%s,%s"%(name,age)) 18 aa('hsc',22) 19 #指定参数赋值,叫做关键字参数 20 21 #非固定参数 22 #*args 为了潜在的扩展需求 23 #**kwargs 24 #指名字为字典,不指为元组
返回值
1.一旦你的函数经过调用并开始执行,那么你的函数外部的程序,就没有办法再控制函数执行的过程了
此时外部程序只能安静的等待函数的执行结果,为啥要等待函数结果,因为外部程序要根据函数的执行
结果来决定下一步怎么走,这个执行结果就是以return的形式返回给外部程序
2.return 代表着一个函数的结束
3.return 可以返回任意数据类型
4.对于用户角度,函数可以返回任意数量的值,但对于py本身来讲,函数只能返回一个值
1 def auth(): 2 username = input('user:').strip() 3 password = input('passwd:').strip() 4 #get data from db 5 _username = 'hsc' 6 _password = 'qwer' 7 if username == _username and password == _password: 8 print('psssed ') 9 return True 10 else: 11 return False 12 13 def home(): 14 if login_status == True: 15 print('welcome') 16 else: 17 auth() 18 def pay(): 19 if login_status == True: 20 print('welcome') 21 else: 22 auth() 23 24 25 26 login_status = auth() 27 28 home() 29 pay()
局部变量
1 login_status = False#全局变量 2 3 def auth(): 4 username = input('user:').strip() 5 password = input('passwd:').strip() 6 #get data from db 7 _username = 'hsc' 8 _password = 'qwer' 9 if username == _username and password == _password: 10 print('psssed ') 11 #修改全局变量 12 global login_status #利用global修改全局变量 13 login_status = True 14 #局部变量,只在当前函数内生效 15 # 这个login_status与上面的全局变量是完全不同的两个变量 16 #占用不同的内存空间 17 def home(): 18 if login_status == True: 19 print('welcome') 20 else: 21 auth() 22 print('welcome') 23 def pay(): 24 if login_status == True: 25 print('welcome') 26 else: 27 auth() 28 29 30 31 auth() 32 print(login_status)
######嵌套
1 name = 'alex' 2 3 def changeName(): 4 name = 'jack' 5 print(name) 6 7 def changeName2(): 8 name = 'rain' 9 print('name2',name) 10 changeName2() 11 changeName()
递归
1 # def calc(n): 2 # print(n) 3 # if n//2 > 0: 4 # calc(n//2) 5 # calc(10) 6 7 8 #不对 9 # def calc(n): 10 # # print(n) 11 # if int(n/2) > 0: 12 # return calc(int(n/2)) 13 # return n 14 # # print(n) 15 # 16 # calc(10) 17 18 # def func(n): 19 # print('------',n+1) 20 # func(n+1) 21 # 22 # func(0)
高阶函数
1 # calc2 = lambda x:x*x 2 # def calc(n): 3 # return -n 4 # 5 # a=6 6 # calc(a) 7 8 def add(x,y,f): 9 return f(x) + f(y) 10 11 def calc(n): 12 return n+1 13 14 res = add(3,-6,calc) 15 #abs 求绝对值 16 print(res)
#########编程范式
1.面向过程
函数
2.面向对象
3.函数式编程
内置函数
1 abs()#求绝对值 2 all()#判断列表内参数是否全为真 3 any()#列表任意一个值为真,返回真 4 ascii()#以ascii表的形式显示内容 5 print(ascii('地方'.encode())) 6 bin()#把数字转换为二进制 7 print(bin(10)) 8 bool()#判断是否为真true false 9 bytes#显示参数在ascii表中的位置数字,0-255之间的数字,ascii表 10 bytearray()#修改字符串中的一个值 11 callable()#判断一个对象是否可以调用 12 chr()#把数字转换为在ascii表中对应的字符 13 ord()#把字符转换为在ascii表中对应的数字 14 compile()### 15 f=open('返回值.py',encoding='utf-8') 16 code = compile(f.read(),'','exec') 17 print(code) 18 exec(code)### 19 eval()#数字运算 20 exec()#运行代码 21 complex#返回复数 22 dir()#返回文件(列表。。。。)可用的方法 23 divmod()#返回商和余数 24 divmod(10,2) 25 enumerate#格式化输出 26 filter()#后面值满足才会留下来 27 for i in filter(lambda x:x>5,range(10)): 28 print(i) 29 float#浮点型 30 format() 31 frozenset# 32 a = frozenset({1,4,4,5,5,6}) 33 b = {1,4,5,5,6} 34 print(a) 35 globals()#把当前程序所在内存里的所有数据都以字典型形式打印出来 36 locals()#打印局部 37 hex()#求十六进制 38 #0x---》十六进制的表示,例:0x8 39 list()#转换为列表 40 max()#求最大 41 min()#求最小 42 oct()#八进制 43 #0o---》十六进制的表示,例:0o8 44 pow(4,9)#幂 45 46 #分隔符 47 msg = "又回到最初的起点" 48 f = open("tofile","w") 49 print(msg,"记忆中你青涩的脸",sep="|",end="",file=f) 50 51 reversed#反转 52 data = [3,4,5,6,7,8] 53 data = reversed(data) 54 for i in data:print(i) 55 56 round()#四舍五入,五舍六入 57 58 set#列表变集合 59 60 slice#切片 61 a = range(20) 62 pattern = slice(3,8,2) 63 for i in a[pattern]:#等于a[3:8:2] 64 print(i) 65 66 sorted()#将字符串按ascii表排序 67 a = 'hsc' 68 a = sorted(a) 69 print(a) 70 71 sum#列表求和 72 73 tuple#转换为元组 74 75 vars()#把当前程序所在内存里的所有数据都以字典型形式打印出来 76 77 zip#拉链,合并 78 a = [1,3,5,7] 79 b = [2,4,6,8] 80 for i in zip[a,b]: 81 print(i)