oldboy第四天学习

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

二、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('1123',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 = '123123'
    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)

 

 

转载于:https://www.cnblogs.com/baifumei/p/6031267.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值