python基础 Day13
python Day13
匿名函数(一句话函数,比较简单的函数)
func=lambda a,b:a+b
print(func(1,2))
###结果:3
func=lambda a:(a[0],a[2])
print(func("dsfds"))
func_max=lambda a,b:a if a>b else b
print(func_max(3,2))
内置函数扩展
bin将10进制转换为二进制并返回
oct将10进制转化为八进制字符并返回
hex将10进制转化为16进制并返回
divmodf :返回除数与被除数的结果
print(divmod(10,3))
###结果(3, 1)
round:保留浮点数的小数位数
print(round(3.2243252543,2))
###结果3.22
pow:求x的y次幂
print(pow(2,3))
##结果 8
+ bytes
~~~python
s1="电话卡"
print(bytes(s1,encoding="utf-8"))
##结果 b'\xe7\x94\xb5\xe8\xaf\x9d\xe5\x8d\xa1'
chr:输入位置数字找出来其对应的字符
print(chr(97))
## a
reversed返回的是一个翻转的迭代器
list1=[i for i in range(10)]
obgj=reversed(list1)
print(obgj)
print(list(obgj))
###结果 :<list_reverseiterator object at 0x000001DD79831948>
## [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]zip 拉链的方法
li=[1,23,4,4,55]
tu1=("太白","猴哥","单反")
s1="fsfsdfdsf"
print(list(zip(li,tu1,s1)))
###结果[(1, '太白', 'f'), (23, '猴哥', 's'), (4, '单反', 'f')]min,max的扩展用法
#以绝对值的形式输出列表的最小值
###凡是可以加key的,它会自动的将可迭代对象中的每个元素按照顺序传入对应的函数中
li=[1,23,4,4,55,-1]
print(min(li,key=abs))##key 后面跟着函数
##1
######
l11=[('太白',18),("alex",73),("wusir",35),("口天吴",41)]
def func(a):
return a[1]
print(min(l11,key=func))#min替换成sorted也是可以的
####结果:('太白', 18)filter 列表推导式的筛选模式
l1=[1,2,3,4,55]
l2=list(filter(lambda x:x>3,l1))
print(l2)
###结果[4, 55]map 列表推导式的循环模式,吧列表中中每个元素输入进去
l1=[1,2,3,4,55]
ret=map(lambda x:x**2,range(1,6))
print(list(ret))
##结果是迭代器的模式闭包
内存函数对外层函数非全局变量的引用(使用),就会形成闭包。被引用的非全局变量也称做自由变量,这个自由变量会与内层函数产生一个绑定关系,自由变量不会再内存中消失。(保证数据的安全)
闭包只能存在嵌套函数中
def make_average():
l1=[]
def average(new_price):
l1.append(new_price)
total=sum(l1)/len(l1)
return total
return average
avg=make_average()
print(avg(1000))
print(avg(2000))
作业
看代码写结果
def add(n,i):
return n+i
def test():
for i in range(4):
yield i
g=test()
for n in [1,10]:
g=(add(n,i) for i in g)
print(list(g))
###结果 [20, 21, 22, 23]
####解析
因为第二次循环n一直就是10了
list(g)=list((add(10,i) for i in add(10,i) for i in test()))
list(g)=list((add(10,i) for i in add(10,i) for i in test[0,1,2,3]))
list(g)=list((add(10,i) for i in ([10,11,12,13])用map来处理字符串列表,把列表中所有人都变成sb,比如fengchao_sb
name=["zhuxiayu","fengchao","wusir"]
new_name=map(lambda x:x+"_sb",name)
print(list(new_name))
###结果 ['zhuxiayu_sb', 'fengchao_sb', 'wusir_sb']用map来处理下述l,然后用lsit得到一个新的列表,列表中每人的名字都是sb结尾
l=[{"name":"服务器"},{"name":"服务器2"}]
new_l=map(lambda x:x["name"]+"sb",l)
print(list(new_l))
###结果 ['服务器sb', '服务器2sb']写代码,最终得到的结果是(每个元组第一个元素>2,第三个*至少是4个)
l1=[1,2,3,4,5,6,7]
l2=["oldboy","axle","wusir","白天","天日"]
tu=("**","***","*****","********")
new=zip(l1,l2,tu)
new_list=list(new)
ret=filter(lambda x:x[0]>2 and len(x[2])>3,new_list)
print(list(ret))
###结果[(3, 'wusir', '*****'), (4, '白天', '********')]将l1按照列表中每个字典的values大小进行排序,形成一个新的列表
l1=[{'sales_volumn':0},
{'sales_volumn':108},
{'sales_volumn':337},
{'sales_volumn':475},
{'sales_volumn':396},
{'sales_volumn':172},
{'sales_volumn':9},
{'sales_volumn':58},
{'sales_volumn':272},
{'sales_volumn':456},
{'sales_volumn':440},
{'sales_volumn':239},
]
print(list(sorted(l1,key=lambda x:x["sales_volumn"])))看代码写结果
v=[lambda :x for x in range(10)]
print(v)
print(v[0])
##结果:[<function <listcomp>.<lambda> at 0x000002AA60EBE168>, <function <listcomp>.<lambda> at 0x000002AA60EB93A8>, <function <listcomp>.<lambda> at 0x000002AA60FC4C18>, <function <listcomp>.<lambda> at 0x000002AA610B5A68>, <function <listcomp>.<lambda> at 0x000002AA610BC5E8>, <function <listcomp>.<lambda> at 0x000002AA610BCC18>, <function <listcomp>.<lambda> at 0x000002AA610C1EE8>, <function <listcomp>.<lambda> at 0x000002AA610C1438>, <function <listcomp>.<lambda> at 0x000002AA620BF3A8>, <function <listcomp>.<lambda> at 0x000002AA620BF438>]
<function <listcomp>.<lambda> at 0x000002AA60EBE168>写一个函数完成三次登录功能,用户的用户名密码从一个文件register中取出,register文件包含多个用户名,密码,用户名密码通过|隔开,每个人的用户名密码占用文件中一行,完成三次实验,三次实验不成功则登录失败,失败则返回false
def get_user_dict():
user_dict={}
with open("register.txt",encoding="utf-8",mode="r") as file:
for line in file:
username1,password1=line.strip("\n").split("|")
user_dict[username1]=password1
return user_dict
def log_in():
user_dict=get_user_dict()
count=1
while count<4:
username=input("please input your name:").strip("") password=input("please input your password").strip("")
if username in user_dict and password==user_dict[username]:
print("登录成功")
return True
else:
count+=1
else:
return False
log_in()
python基础 Day13的更多相关文章
- python之最强王者(2)——python基础语法
背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...
- Python开发【第二篇】:Python基础知识
Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...
- Python小白的发展之路之Python基础(一)
Python基础部分1: 1.Python简介 2.Python 2 or 3,两者的主要区别 3.Python解释器 4.安装Python 5.第一个Python程序 Hello World 6.P ...
- Python之路3【第一篇】Python基础
本节内容 Python简介 Python安装 第一个Python程序 编程语言的分类 Python简介 1.Python的由来 python的创始人为吉多·范罗苏姆(Guido van Rossum) ...
- 进击的Python【第三章】:Python基础(三)
Python基础(三) 本章内容 集合的概念与操作 文件的操作 函数的特点与用法 参数与局部变量 return返回值的概念 递归的基本含义 函数式编程介绍 高阶函数的概念 一.集合的概念与操作 集合( ...
- 进击的Python【第二章】:Python基础(二)
Python基础(二) 本章内容 数据类型 数据运算 列表与元组的基本操作 字典的基本操作 字符编码与转码 模块初探 练习:购物车程序 一.数据类型 Python有五个标准的数据类型: Numbers ...
- Python之路【第一篇】python基础
一.python开发 1.开发: 1)高级语言:python .Java .PHP. C# Go ruby c++ ===>字节码 2)低级语言:c .汇编 2.语言之间的对比: 1)py ...
- python基础之day1
Python 简介 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. Python为我们提供了非常完善的基础代码库,覆盖了 ...
- python基础之文件读写
python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使用os模块的一些方法如下: 得到 ...
随机推荐
- Linux最常用的基本操作复习
.ctrl + shift + = 放大终端字体 .ctrl + - 缩小终端字体 .ls 查看当前文件夹下的内容 .pwd 查看当前所在的文件夹 .cd 目录名 切换文件夹 .touch 如果文件不 ...
- pandas_数据排序
import pandas as pd # 设置列对齐 pd.set_option("display.unicode.ambiguous_as_wide",True) pd.set ...
- php getimagesize 函数 - 获取图像信息
getimagesize() 函数用于获取图像大小及相关信息,成功返回一个数组,失败则返回 FALSE 并产生一条 E_WARNING 级的错误信息. 语法格式:高佣联盟 www.cgewang.co ...
- 5.19 省选模拟赛 T1 小B的棋盘 双指针 性质
LINK:小B的棋盘 考试的时候没有认真的思考 导致没做出来. 容易发现 当k>=n的时候存在无限解 其余都存在有限解 对于30分 容易想到暴力枚举 对称中心 然后 n^2判断. 对于前者 容易 ...
- P4274 [NOI2004]小H的小屋 dp 贪心
LINK:小H的小屋 尽管有论文 但是 其证明非常的不严谨 结尾甚至还是大胆猜测等字样... 先说贪心:容易发现m|n的时候此时均分两个地方就是最优的. 关于这个证明显然m在均分的时候的分点一定是n的 ...
- luogu 2478 [SDOI2010]城市规划 仙人掌上dp.
LINK:城市规划 以前ls 让写的时候由于看不懂题目+以为在图中的环上dp非常困难所以放弃治疗了. 现在终于能把题目看懂了 泪目... 题目其实就是在说 给出一张图这个有一个非常好的性质 满足每个点 ...
- react引入相同组件时互不影响
具体代码可以查看我的代码仓库 https://gitee.com/haomYGH/Web20/tree/master/010-React/014-redux-immutable 页面展示 要处理的问题 ...
- 实验09——java基于TCP实现客户端与服务端通信
TCP通信 需要先创建连接 - 并且在创建连接的过程中 需要经过三次握手 底层通过 流 发送数据 数据没有大小限制 可靠的传输机制 - 丢包重发 包的顺序的 ...
- 【lhyaaa】图的存储&遍历
呀,图真是一个令人头疼而又很重要的东西.在现实生活中,我们有很多的问题都不能用树来实现,所以烦人啊不伟大的图就出现了—— 图的存储 没有存储哪来的操作,所以存储是最基础的呢. 邻接矩阵 我们对于图的存 ...
- C#/.Net集成RabbitMQ
RabbitMQ简介 消息 (Message) 是指在应用间传送的数据.消息可以非常简单,比如只包含文本字符串. JSON 等,也可以很复杂,比如内嵌对象. 消息队列中间件 (Message Queu ...