oldboy第四天学习

时间:2021-02-23 16:13:11

一、感觉上课没有太多的知识。也可以去理解。但是作业太难了。。。

二、hash()

#python里面的哈希类型是在一个程序中不变,如果换了python 哈希是不#一样的。
#字典为什么快,因为他把字典中的key变成了哈希值,查找的时候 是通过#查找哈希值找到的。
def sayHI():
print('hello world')
sayHI() def stu_register(name, age, country, course,*args,**kwargs):
print("----注册学生信息------")
print("姓名:", name)
print("age:", age)
print("国籍:", country)
print("课程:", course)
#print(*args)
#print(**kwargs)
print('',args,kwargs)
print(kwargs.get('xuehao','jinqian')) stu_register("王山炮", 22, "CN", "python_devops",'ddddd','lllll',xuehao = 'st112003',jinqian=10000)
stu_register("张叫春", 21, "CN", "linux")
stu_register("刘老根", 25, "CN", "linux")

三、返回值

# 返回值
# 1.一旦你的函数经过调用并开始执行,那你的函数外部程序,就没有办法再控制函数的过程了。
# 此时外部程序只能安静的等待函数的执行结果,为啥要等待函数结果,因为外部程序要根据函数的
# 执行结果来决定下一步怎么走,这个执行结果就是一retun的形式返回给外部的程序。
# 2.return 代表这一个函数的结束。
# 3.return 可以返回任意数据类型。
# 4.对于用户角度,函数可以返回任意数量的值,但对于py本身来讲,函数只能返回一个值。 # 局部变量改全局变量尽量不要用
def auth():
username = input('请输入账号')
password = input('请输入密码')
_username = 'houziyu'
_password = ''
if username == _username and password ==_password:
return True
else:
return False
#abc =123
#global abc # 全局变量global
del

  三、递归

#递归
#1.必须有一个明确的条件。如果没有明确的条件就是一个死循环
def calc(n):
print(n)
if int(n/2) == 0 :
return n
return calc(int(n/2))
calc(10)

四、二分查找

# 二分查找
data = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
def binary_search(datasets,find_num):
if len(datasets) >0 :
middie_pos = int(len(datasets)/2)
if datasets[middie_pos] == find_num:
print('find num:',datasets[middie_pos])
elif datasets[middie_pos] > find_num:
binary_search(datasets[0:middie_pos],find_num)
print('小了')
else:
binary_search(datasets[middie_pos+1:],find_num)
print('大了')
else:
print('没有找到数字',find_num) binary_search(data,20)

五、三元预算及匿名函数

 

#三元预算
a = 4
b = 5
d = a if >10 else b
#匿名函数
def calc(n,j):
return n*j
calc2 = lambda x,y:x*y
print(calc(8,9))
print(calc2(8,9)) def calc(n) :
n**n data=map(lambda n:n*n if n>2 else n ,range(10))
for i in data:
print(i) #all 除了0都的为真 #any 一个为真都为真
print(ascii('哈')) #转换成ascii 没啥用忘记吧
print(bin(10)) #转换成二进制
print(chr(97))
print(ord('a'))
print(globals()) #把当前程序所在内存里的所有数据都以字典的形式打印出来 a = frozenset({1,2,3,4,4}) #让集合只读~ f = open('呵呵.py',encoding='utf-8') #相当于import
code = compile(f.read(),'','exec')
exec(code) for i in filter(lambda x:x>5 , range(10)): #筛选5以上的
print(i) hex() #求16进制
a =[1,2,3,4,5]
b =[4.5.6.7.8]
for i in zip(a,b):
print(i)