目录
一.列表推导式
# 列表推导式 如果数据很大会比for循环节省时间
def list_drived():
my_list = [1, 2, 3]
new_list = []
for i in my_list:
new_list.append(i * 2)
print(new_list) # [2, 4, 6]
new_list1=[i*2 for i in my_list if i>=1]
print(new_list1) # [2, 4, 6]
new_list2=[(x,y) for x in range(3) for y in range(3)]
print(new_list2)
# [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
if __name__=='__main__':
list_drived()
二.三元表达式
# 三元表达式/条件表达式
# lam(1) True if if_lam(1) else lab(1) False
def ternary_expresion():
age=18
flag=1 if age>=18 else 0
print(flag)
flag2=(0,1)[age>=18]# 前为假后为真
print(flag2)
if __name__=='__main__':
ternary_expresion()
三.断言
# 断言 断言是简易版的if语句 用于判断某个表达式的值
# 若为假 则程序停止运行 抛出AssertionError错误
def assert_test():
"""
断言是给开发人员看的,常用断言函数有
assertEqual(a,b,msg=msg):判断两个值是否相等;
assertNotEqual(a,b,msg=msg):上一函数的反义;
self.assertTrue(a,msg=none):判断变量是否为 True;
assertFalse(a,msg=none):同上反义;
assertIsNone(obj=‘’):判断 obj 是否为空;
assertIsNotNone(obj=‘’):同上反义
:return:
"""
age=17
assert age>=18,'sorry you age too small'
# AssertionError: sorry you age too small
print('begin ganme')
if __name__=='__main__':
assert_test()
四.with-as
# with-as 可以理解成python的控制流语句也可以是简化版的try
def with_as():
# 手动打开文件
file=open('./file.txt')
try:
data = file.read()
print(data)
finally:
file.close()
#with-as 打开文件
with open('file.txt') as file:
data = file.read()
print(data)
if __name__=='__main__':
with_as()
五.异常捕获处理方法
# 异常捕获
def try_except():
"""
try:
可能出错的代码块
except 异常类型:
代码出错执行的代码块
else:
代码正常执行的代码块
finally:
无论代码是否有异常出现都会执行的的代码块
其中常见异常类型
AttributeError 某个对象没有属性
Exception 通用型异常对象
FileNotFoundError 找不到文件
IOError 输入输出异常
IndexError 索引异常
KeyError 键异常
NameError 对象名称异常
SyntaxError 语法错误
TypeError 类型错误
ValueError 值错误
:return:
"""
六.lambda
def lambda_learn():
fun= lambda x:x+1
print(fun(1))# 输出为2
"""
lambda表达式也叫匿名表达式(单表达式函数)
lambda与def区别:1.lambda无函数名
2.for不能用在lambda但是if可以
3.lambda不能共享给其他程序调用
4.lambda能作为其他数据类型的值
"""
if __name__=='__main__':
lambda_learn()
七.文件
import os
def file():
print(os.getcwd())# D:\pythonProjects\learnPython
#打开文件
fileName='file.txt'
with open(fileName,encoding='utf-8') as file1:
data1=file1.read()
print(data1)
writeNode=data1+'\nhello world3'
with open(fileName,mode='w',encoding='utf-8') as file2:
file2.write(writeNode)# 会删除前面内容重新写
if __name__=='__main__':
file()
八.常用库
常用标准库清单如下
- sys
- os
- math
- random
- pikle
- subprocess
- queue
- StringIO
- logging
- json
- time
- datetime
- re
- csv
- threading
- asyncio
import random
def random_test():
num1=0#r andom.seed(100)# 如果使用seed产生的随机数会不变
num2=random.random()
num3=random.randint(1,10)#生产一个x,y区间之内的整数
num4=random.randrange(1,10)
num5=random.gauss(0,1)
"""
expovariate:生成一个 (0,∞) 之间的随机整数,指数分布;
gammavariate:采用 gamma 分布;
gauss:采用高斯(正太)分布;
lognormvariate:对数正太分布;
normalvariate:正太分布;
vonmisesvariate:冯米赛斯分布;
paretovariate:帕累托分布;
weibullvariate:韦伯分布。
"""
这就是今天python的学习内容啦。明天大概会学习数据库的操作,socket和发送文件。