s21day11 python笔记
s21day11 python笔记
一、函数小高级
函数名可以当作变量来使用
#示例一:
def func():
print(123)
func_list = [func, func, func]
# func_list[0]()
# func_list[1]()
# func_list[2]()
for item in func_list:
v = item()
print(v)
#示例二:
def func():
print(123)
def bar():
print(666)
info = {'k1': func, 'k2': bar}
info['k1']()
info['k2']()
#注意区别:
def func():
return 123
func_list1 = [func,func,func]
func_list2 = [func(),func(),func()]
print(func_list1)
print(func_list2)
函数可以当作参数进行传递
#示例:
def func(arg):
v1 = arg()
print(v1)
def show():
print(666)
result = func(show)
print(result)
#面试题:多个函数的调用
def func():
print('话费查询')
def bar():
print('语音沟通')
def base():
print('业务办理')
def show():
print('流量查询')
def test():
print('人工服务')
info = {
'f1': func,
'f2': bar,
'f3':base,
'f4':show,
'f5':test
}
choice = input('请选择要选择功能:')
function_name = info.get(choice)
if function_name:
function_name()
else:
print('输入错误')
二、 lambda表达式
作用:用于表达简单的函数
基本形式:
#三元运算,为了解决简单的if else的情况
if 1 == 1:
a = 123
else:
a = 456
#用三元运算表示:
a = 123 if 1 == 1 else 456
#lambda表达式,为了解决简单函数的情况
def func(a1,a2):
return a1 + a2
#用lambda表达式表示:
func = lambda a1,a2: a1+a2 #隐含了return
重点:
- lambda表达式只能用一行表示函数
- 用lambda表达式表示函数时,无法设置新变量,只能用参数作变量
- 列表所有方法基本上都是返回None,字符串的所有方法基本上都是返回新值
练习题
# 练习题1
USER_LIST = []
def func0(x):
v = USER_LIST.append(x)
return v
result = func0('alex')
print(result) #None
# 练习题2
def func0(x):
v = x.strip()
return v
result = func0(' alex ')
print(result) #'alex'
# 练习题3
USER_LIST = []
func1 = lambda x: USER_LIST.append(x)
v1 = func1('alex')
print(v1) #None
print(USER_LIST) #['alex']
# 练习题4
func1 = lambda x: x.split('l')
v1 = func1('alex')
print(v1) #['a','ex']
# 练习题5
func_list = [lambda x:x.strip(), lambda y:y+199,lambda x,y:x+y]
v1 = func_list[0]('alex ')
print(v1) #'alex'
v2 = func_list[1](100)
print(v2) #299
v3 = func_list[2](1,2)
print(v3) #3
三、内置函数
函数分为自定义函数和内置函数
python内置函数分类:
强制转换:int() / str() / bool() / list() / tuple() / dict() / set()
输入输出:input() / print()
其他:len() / open() / range() / id() / type()
数学相关:
abs():计算绝对值
sum():求和
float():转化为浮点型(小数)
v = 55
v1 = float(55)
print(v1) #55.0
- 补充:int(55.5) #只保留整数:55
max():找到最大值
min():找到最小值
divmod():取两数相除的商和余数
#示例:
a,b = divmod(1001,5)
print(a,b) #a=200,b=1
注意:divmod在分页展示时用得比较多
# 练习题 请通过分页对数据进行展示
"""
要求:
每页显示10条数据
让用户输入要查看的页面:页码
"""
USER_LIST = []
for i in range(1,836):
temp = {'name':'你-%s' %i,'email':'123%s@qq.com' %i }
USER_LIST.append(temp)
# 数据总条数
total_count = len(USER_LIST)
# 每页显示10条
per_page_count= 10
# 总页码数
max_page_num,a = divmod(total_count,per_page_count)
if a>0:
max_page_num += 1
while True:
pager = int(input('要查看第几页:'))
if pager < 1 or pager > max_page_num:
print('页码不合法,必须是 1 ~ %s' %max_page_num )
else:
start = (pager-1) * per_page_count
end = pager * per_page_count
data = USER_LIST[start:end]
for item in data:
print(item)
进制转换相关:
bin():将十进制转换成二进制
oct():将十进制转换成八进制
int():将其他进制转换成十进制
- 默认:base = 10
# 二进制转化成十进制
v1 = '0b1101'
result = int(v1,base=2) #base=2说明读取的是二进制
print(result)
# 八进制转化成十进制
v1 = '0o1101'
result = int(v1,base=8)
print(result)
# 十六进制转化成十进制
v1 = '0x1101'
result = int(v1,base=16)
print(result)
hex():将十进制转换成十六进制
#1字节等于8位
# IP: 192.168.12.79 -> 001010010 . 001010010 . 001010010 . 001010010
# 请将 ip = "192.168.12.79" 中的每个十进制数转换成二进制并通过,连接起来生成一个新的字符串。
ip = "192.168.12.79"
ip_list = ip.split('.') # ['192','168','12','79']
result = []
for item in ip_list:
result.append(bin(int(item)))
print(','.join(result))
#面试题:
# 请将 ip = "192.168.12.79" 中的每个十进制数转换成二进制:
# 0010100100001010010001010010001010010 -> 十进制的值。
# 3232238671
ip = '192.168.12.79'
v = ip.split('.')
info = []
for i in v:
date = str(bin(int(i)))
if len(date) > 10:
date = date[-8:]
else:
count = 10 - len(date)
date = date.replace('0b','0'*count)
info.append(date)
val = "".join(info)
a = int(val,base=2)
print(a)
s21day11 python笔记的更多相关文章
- Python笔记之不可不练
如果您已经有了一定的Python编程基础,那么本文就是为您的编程能力锦上添花,如果您刚刚开始对Python有一点点兴趣,不怕,Python的重点基础知识已经总结在博文<Python笔记之不可不知 ...
- boost.python笔记
boost.python笔记 标签: boost.python,python, C++ 简介 Boost.python是什么? 它是boost库的一部分,随boost一起安装,用来实现C++和Pyth ...
- 20.Python笔记之SqlAlchemy使用
Date:2016-03-27 Title:20.Python笔记之SqlAlchemy使用 Tags:python Category:Python 作者:刘耀 博客:www.liuyao.me 一. ...
- Python笔记——类定义
Python笔记——类定义 一.类定义: class <类名>: <语句> 类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性 如果直接使用类名修改其属 ...
- 13.python笔记之pyyaml模块
Date:2016-03-25 Title:13.Python笔记之Pyymal模块使用 Tags:Python Category:Python 博客地址:www.liuyao.me 作者:刘耀 YA ...
- 8.python笔记之面向对象基础
title: 8.Python笔记之面向对象基础 date: 2016-02-21 15:10:35 tags: Python categories: Python --- 面向对象思维导图 (来自1 ...
- python笔记 - day8
python笔记 - day8 参考: http://www.cnblogs.com/wupeiqi/p/4766801.html http://www.cnblogs.com/wupeiqi/art ...
- python笔记 - day7-1 之面向对象编程
python笔记 - day7-1 之面向对象编程 什么时候用面向对象: 多个函数的参数相同: 当某一些函数具有相同参数时,可以使用面向对象的方式,将参数值一次性的封装到对象,以后去对象中取值即可: ...
- python笔记 - day7
python笔记 - day7 参考: http://www.cnblogs.com/wupeiqi/articles/5501365.html 面向对象,初级篇: http://www.cnblog ...
随机推荐
- 【BZOJ4031】小Z的房间
Description 你突然有了一个大房子,房子里面有一些房间.事实上,你的房子可以看做是一个包含n*m个格子的格状矩形,每个格子是一个房间或者是一个柱子.在一开始的时候,相邻的格子之间都有墙隔着. ...
- Bootstrap 可视化HTML编辑器,summernote
Bootstrap 可视化HTML编辑器之summernote,用其官网上的介绍就是"Super Simple WYSIWYG editor",不过在我看来,与bootstrap中 ...
- Qt: error: symbol(s) not found for architecture x86_64问题
Mac上面报这个问题,结果是因为.h文件有函数没有实现.
- bootstrap-select——Methods
参考资料:http://silviomoreto.github.io/bootstrap-select/methods/ Methods .selectpicker('val'):通过调用元素的val ...
- 获取动态代理生成的.class文件
生成代理类,并写入硬盘:配置系统属性sun.misc.ProxyGenerator.saveGeneratedFile为true,代理类生成时将自动将生成的代理类写入硬盘 ? 1 2 3 4 5 6 ...
- C#实现基于ffmpeg加虹软的人脸识别
关于人脸识别 目前的人脸识别已经相对成熟,有各种收费免费的商业方案和开源方案,其中OpenCV很早就支持了人脸识别,在我选择人脸 识别开发库时,也横向对比了三种库,包括在线识别的百度.开源的OpenC ...
- Codeforces 1064 D - Labyrinth
D - Labyrinth 对于位置(i,j), j - c = R - L = const(常数), 其中R表示往右走了几步,L表示往左走了几步 所以R越大, L就越大, R越小, L就越小, 所以 ...
- legend2---开发日志10(ajax请求的方法是否同样会执行base控制器里面的方法)
legend2---开发日志10(ajax请求的方法是否同样会执行base控制器里面的方法) 一.总结 一句话总结:会执行的,所以写base控制器里面的方法要注意,base控制器里面的方法要以查数据为 ...
- fcn+caffe+制作自己的数据集
参考博客: http://blog.csdn.net/jacke121/article/details/78160398 以视网膜血管分割的数据集为例: 训练样本: 训练标签: 标签图的制作依据voc ...
- 压力测试+接口测试(工具jmeter)
jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单.因 为jmeter是java开发的,所以运行的时候必须 ...