python基础知识(四)
摘要:主要涉及lambda表达式、python内置函数(open文件重点)、冒泡排序
一、lambda表达式
适用于创建简单函数,也叫匿名函数, 函数名 = lambda 参数 : 返回值
function = lambda a1,a2 : a1+a2
二、python内置函数
abs() 绝对值 print(abs(-12))
all(iterable) 所有元素为真才为真
any() 有某个元素为真则为真
bool() 0,空值,None,空列表 空元组,空字典,空set集合【set()】,空字符串【连空格都没有的】 为假
bin() 将十进制转换为二进制 0b表示二进制
oct() 将十进制转化为八进制 0o表示八进制
int() 单个参数,直接放入数字,就是十进制转换十进制,如果是其他进制转换为十进制,并要求是字符串形式数字,
int('0b011100',base=2)
‘0o + 数字’,表示八进制 base = 2
‘0b + 数字’,表示二进制 base = 8
‘0x + 数字’,表示十六进制 base = 16
hex() 将十进制转换为十六进制 0x表示十六进制
ascii() 不常用,
bytes() 主要记住字节与字符之间的转换 bytes('字符',encoding='utf-8')
bytearray() 类似于字节列表
chr() 将十进制数字转换成ascii对应的字母或数字等 print(chr(65)) --> A
ord('A') 将字母或数字等转换成对应的ascii十进制数字 print(ord('A')) --> 65
isinstance(object,type) ---> isinstance(args,tuple) ---> True or False 可以用来判断参数的类型是什么
#插播练习
#实现随机验证码 import random temp = ' ' for i in range():
num = random.randrange(,)
if num == or num == :
j = random.randrange(,)
temp = temp + str(j)
else:
h = random.randrange(,)
rad = chr(h)
temp = temp + rad
print(temp)
callable() 判断是否可执行的, 记住:凡是变量名字后面加() 就是可执行的,返回True,没什么用处的
compile() 编译代码,
exec() 只用来执行代码,无返回值 exec('for i in range(4):print i')
eval() 编译字符串形式的表达式,有返回值 , 例如 a = '1+3' b = eval(a) print(b) --> 4
例如 : ret = eval('a + 99',{'a':100}) ----> print(ret)
dir() li = [] ,print(dir(li))
divmod() print(divmod(10,3)) --> (3, 1) (商,余数) 以后可以用在分页方面
filter(函数,可迭代对象) 筛选,将可迭代对象的元素倒入函数,将返回值为True的元素筛选出来
def f1(x):
if x > :
return True
else:
return False
ret = filter(f1,[,,,])
for i in ret:
print(i) ----> #或者结合lambda表达式
ret = filter(lambda x : x > ,[,,,])
for i in ret:
print(i)
map(函数,可迭代对象) 将可迭代元素倒入函数,将函数返回值重新赋值给元素
ret = map(lambda x : x + 100,[1,2,3,4,5])
print(ret)
for i in ret:
print(i) ----> 101
102
103
104
105 ret = map(lambda x : x + 100 if x % 2 == 1 else x,[1,2,3,4,5])
print(ret)
for i in ret:
print(i) -----> <map object at 0x00000067784C9748>
101
2
103
4
105
locals() 代码按顺序执行到现在的所有局部变量
globals() 代码按顺序执行到现在的所有全局变量
hash() 转变成哈希值,节省空间,可用来给字典的key做优化
iter() 将括号内容生成为可迭代对象
next(可迭代对象) print(next(可迭代对象)) ---> 返回对象的第一个元素,一直next() 可将迭代元素取完,超出会报错
max() 最大
min() 最小
sum() 求和
pow() 求幂 pow(2,10) 求2的10次方
round() 四舍五入 print(round(3.3)) ---> 3
sorted() 数字与字符串不可比较排序,内置函数排序需要是同一种类型
字符串的排序 : 先是字符串里的数字,再字母,再中文
li = ['','','abc','','','李强','崔亮','张','王','sb','A','a','B']
q = sorted(li)
print(q)
for j in q:
f = bytes(j,encoding='utf-8')
print(f) ['', '', '', '', 'A', 'B', 'a', 'abc', 'sb', '崔亮', '张', '李强', '王']
b''
b''
b''
b''
b'A'
b'B'
b'a'
b'abc'
b'sb'
b'\xe5\xb4\x94\xe4\xba\xae'
b'\xe5\xbc\xa0'
b'\xe6\x9d\x8e\xe5\xbc\xba'
b'\xe7\x8e\x8b'
zip(self, iter1, iter2=None, *some)
l1 = [11,22,33,44] l2 = [55,66,77,88]
ret = zip(l1,l2)
for i in ret:
print(i) ----> (11, 55)
(22, 66)
(33, 77)
(44, 88)
open(文件名,打开方式)
普通打开方式:计算机硬盘存储的为0101二进制模式,当通过python打开文件时,默认将二进制转换成字符串显示 ==》字符串类型
'r' 只可读,为默认的打开方式
'w' 只可写,不可读,文件不存在则创建,存在则清空文件内容
'x' 只可写,不可读,文件不存在则创建,存在则报错
'a' 追加模式,不可读,不存在则创建,存在则只追加内容
例如:# f = open('test2.py','r')
# data = f.read()
# print(data)
# f.close()
# f = open('test3.txt','w')
# f.write('what are you doing?')
# f.close()
# f = open('test3.txt','a')
# f.write('what are you doing?')
# f.close()
以二进制方式打开: ==》字节类型
'rb' 只可读,以二进制的方式读取
例如: f = open('text.txt','rb')
data = f.read()
print(data)
str_data = str(data,encoding = 'utf-8')
f.close()
print(str_data)
'wb' 只可写,需要以二进制方式写入
例如: f = open('text.txt','wb')
str_name = '中国人'
bytes_name = bytes(str_name,encoding = 'utf-8')
f.write(bytes_name)
f.close()
'xb' 只可写,需要以二进制方式写入
'ab' 只可写,末尾追加,需要以二进制方式写入
'+' 表示可以同时读写摸个文件
r+ 可读写,打开时指针在最开始,【最常用】
读完之后(也可以只读几个字符,f.read(1) ) ,再写的话,先要调整指针到想要的位置,不调整的话,会在结尾开始写了
f.tell() 判断指针所在位置,以字节来显示
f.read(1) 读取一个字符,中文为1个汉字,英文为1个字母
f.seek(num) 调整指针
w+ 可写读,先清空,再写(写了指针就到最后),之后再可读
f = open('test2.py','w+')
f.write('what are u doing? my love')
f.seek(0)
data = f.read()
f.close()
print(data)
x+ 可写读,先清空,再写(写了指针就到最后),之后再可读 【文件存在就会报错】
a+ 可追加读取,打开的同时将指针调整到最后,再读的话都不到内容的,因为指针在最后,后面没内容了,就算是调整指针,写的话也是在最后开始写
文件操作方法
f.flush() 把内存中的write内容刷到硬盘里
当使用f.write()时,只有全部结束时,才会写入硬盘
f.read() 可加参数,是按照字符来读取的
f.readline() 默认值只读取第一行
f.readlines() --->生成列表 [‘第一行’,‘第二行’ ...]
f.write()
f.tell() 定位指针时,指针是按照字节计算的
f.seek(num) 修改指针位置,以字节来表示的
f.truncate() 指针在哪,截取到哪,指针之前都保留
f.close() 关闭文件
with open('test2.py','r') as f : 等同于 f = open('test2.py','r') with 会帮助自动关闭文件
python2.7之后支持with 同时打开2文件
with open('log1','r') as f1 ,open('log2','w') as f2:
for line in f1:
f2.write(line)
三、冒泡排序
一个for循环就会将序列编排一次,将最大值放到列表最后
li = [22,11,2,32,9,443,4,53,7554,4321,5652,2,435,67]
for j in range(1,len(li)):
for i in range(len(li) - j):
# current_value = li[i]
# next_value = li[i + 1]
# if current_value > next_value:
# temp = current_value
# current_value = next_value
# next_value = temp
if li[i] > li[i + 1]:
temp = li[i]
li[i] = li[i + 1]
li[i + 1] = temp
print(li) -------> [2, 2, 4, 9, 11, 22, 32, 53, 67, 435, 443, 4321, 5652, 7554]
python基础知识(四)的更多相关文章
- Python基础知识(四)
Python基础知识(四) 一丶列表 定义格式: 是一个容器,由 [ ]表示,元素与元素之间用逗号隔开. 如:name=["张三","李四"] 作用: 存储任意 ...
- python基础知识四 小数据池,深浅拷贝,集合+菜中菜
四.小数据池,深浅拷贝,集合+菜中菜 1小数据池 --缓存机制(驻留机制) '==' 判断两边内容是否相等 'is' 基于内存地址进行判断是否相同 a = 10 b = 10 print(a ...
- python基础知识四
函数是重用的程序段.它们允许你给一块语句一个名称, 然后你可以在你的程序的任何地方使用这个名称多次地运行这个语句块.这被成为调用函数.我们已经使用了许多内建的函数,比如len和range. 函数通过d ...
- Python基础知识(五)------字典
Python基础知识(四)------字典 字典 一丶什么是字典 dict关键字 , 以 {} 表示, 以key:value形式保存数据 ,每个逗号分隔 键: 必须是可哈希,(不可变的数据类型 ...
- Python基础知识总结笔记(四)函数
Python基础知识总结笔记(四)函数python中的函数函数中的参数变量作用域偏函数PFA递归函数高阶函数BIFs中的高阶函数匿名函数lambda闭包Closure装饰器Decorator函数式编程 ...
- python 基础知识(一)
python 基础知识(一) 一.python发展介绍 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本 ...
- python 爬虫与数据可视化--python基础知识
摘要:偶然机会接触到python语音,感觉语法简单.功能强大,刚好朋友分享了一个网课<python 爬虫与数据可视化>,于是在工作与闲暇时间学习起来,并做如下课程笔记整理,整体大概分为4个 ...
- python基础知识小结-运维笔记
接触python已有一段时间了,下面针对python基础知识的使用做一完整梳理:1)避免‘\n’等特殊字符的两种方式: a)利用转义字符‘\’ b)利用原始字符‘r’ print r'c:\now' ...
- Python基础知识详解 从入门到精通(七)类与对象
本篇主要是介绍python,内容可先看目录其他基础知识详解,欢迎查看本人的其他文章Python基础知识详解 从入门到精通(一)介绍Python基础知识详解 从入门到精通(二)基础Python基础知识详 ...
- Python开发【第二篇】:Python基础知识
Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...
随机推荐
- java中的浮点数
浮点数值不适用于禁止出现舍入误差的金融计算中.例如,命令System.out.println(2.0-1.1)将打印出0.8999999999999999999999999,而不是人们想象的0.9.其 ...
- chrome中不可见字符引发的float问题
起因是刷知乎时碰到这么个问题:https://www.zhihu.com/question/41400503 问题代码如下: <!DOCTYPE html> <html lang=& ...
- java基础学习02(简单的java程序)
简单的java程序 一.完成的目标 1. 理解java程序的基本组成 2. 如何对程序代码进行注释 3. java标识符的命名规则 4. 了解java中的关键字 5. 使用java定义变量或声明变量 ...
- IDEA 中生成 Hibernate 逆向工程实践
谈起 Hibernate 应该得知道 Gavin King 大叔,他构建了 Hibernate ,并将其捐献给了开源社区. Hibernate 对象关系映射解决方案,为面向对象的领域模型到传统的关系型 ...
- Linux 中 SVN 重启关闭
a.启动SVN svnserve -d -r /A/B/svn/ 其中 -d 表示守护进程, -r 表示在后台执行 /A/B/svn/ 为svn的安装目录 b.关闭SVN 这里采取linux杀死进程的 ...
- 迁移 SQL Server 数据库到 Azure SQL 实战
最近有个维护的项目需要把 SQL Server 2012 的数据库迁移到 Azure SQL 上去,迁移过程可谓一波三折,故在此分享这次迁移中碰到的点点滴滴,希望对朋友们有所帮助. 文章来源:葡萄城产 ...
- JavaScript-简单的贪吃蛇小游戏
实现逻辑: //获取Html中的格子(行,列) //建立数组存储所有格子(x,y) //建立数组用于存储蛇身(x,y) //生成随机坐标(x,y)的函数 //随机创建蛇身并存储到蛇身数组 //创建食物 ...
- setTimeout和setInterval从入门到精通
我们在日常web前端开发中,经常需要用到定时器方法. 前端中的定时器方法是浏览器提供的,并不是ECMAScript规范中的.是window对象的方法. 浏览器中的定时器有两种, 一种是每间隔一定时间执 ...
- CSS优先级
一.CSS代码出现的几个位置 多重样式(Multiple Styles):如果外部样式.内部样式和内联样式同时应用于同一个元素,就是使多重样式的情况. 一般情况下,优先级如下:(外部样式)Extern ...
- IO流-----写到输出流
输出流:---链接:http://blog.csdn.net/du_minchao/article/details/49045421 /** * 方法名:writeStream * 方法描述:写到输出 ...