Python笔记五

1.函数返回值

函数如果返回多个值的话,他会把这几个参数值,都放到一个元组里面函数若返回多个值的话,可以用多个变量来接收即可
1 def say():
2     num1 = 1
3     num2 = 2
4     num3 = 3
5     return num1,num2,num3
6 res = say()
7 print(res)
8 res1,res2,res3= say()
9 print(res1,res2,res3)

2.匿名函数:

这个函数功能很简单,只用一次。   lambda定义匿名函数
1 res = lambda x:x+1 #前面X代表函数返回值,后面x+1代表函数体
2 print(res(1))

3.列表生成器

 1 import random
 2 red_num= random.sample(range(1,34),6)
 3 #外面是小括号的话,他就不是一个list了,他是一个生成器
 4 # 生成器比list要节约内存,他是每次循环的时候,会根据规则计算一个元素,放到内存里面。
 5 # list他是把所有的元素都放在内存里面。
 6 l  = [i for i in  range(1,101,2)]#生成100以内的奇数
 7 new_num = [str(num).zfill(2)for num in red_num] #列表生成式
 8 print(new_num)
 9 print(l)
10
11 #生成器例子
12 l  = (i for i in  range(1,101,2))
13 for l2 in l:
14     print(l2)
15 print(l.__next__)#表示每次打印一个值
16
17 # #下面的这一串与上面的【列表生成式】的作用一样
18 for num in red_num:
19     temp = str(num).zfill(2)
20     new_num.append(temp)
21 print(new_num)
22
23
24 # #练习一(列表生成式)
25 a = 5
26 b = 4
27 if a>b:
28     c= a
29 else:
30     c= b
31
32 c = a if a>b else b #三元表达式

4.字典排序

 1 d = {‘a‘:4,‘c‘:2,‘b‘:3}
 2
 3 #字典是无序,直接对字典排序是不存在的
 4 print(d.items())
 5 print(sorted(d.items()))#sorted帮我们循环调用生成了一个二维数组,默认是按照key排序的
 6 res=sorted(d.items(),key=lambda x:x[0])#根据key排序
 7 res1=sorted(d.items(),key=lambda x:x[1])#根据value排序
 8 print(res)
 9 print(res1)
10
11 for k,v in res:#循环二维数组
12     print(k,v)
13
14 l =[
15     [1,2,3,4],
16     [1,2,4,3]
17 ]
18 for a,b,c,d in l:
19     print(a,b,c,d)
20
21 def my(name:str):
22     print(name)
23 my([‘123‘,‘456‘])

5.常用标准模块

 1 import os
 2 print(os.getcwd())#取当前工作目录
 3 os.chmod("D:\syz1\T_code1\day6",2)#给文件/目录加权限,对windows下面不好使用
 4 # 1 执行
 5 # 2 写
 6 # 4 读
 7 # chmod 加权限
 8 print(os.chdir("../"))#更改当前目录
 9 print(os.curdir)#当前目录
10 print(os.pardir)#父目录
11
12 print(os.makedirs("hh/h1"))#递归创建文件夹,父目录不存在时创建父目录
13 print(os.mkdir("yjy/python"))#创建文件夹
14 # makedirs创建文件夹的时候,如果父目录不存在会自动帮你创建父目录
15 #mkdir创建文件夹的时候,如果父目录不存在会报错
16
17
18 print(os.removedirs("/usr/hehe/hehe1"))#递归删除空目录
19 print(os.rmdir("test1"))#删除指定的文件夹
20 #只能删除空目录
21
22 print(os.remove("test1"))#删除文件
23 print(os.listdir(‘.‘))#列出一个目录下的所有文件
24 os.rename("test","test1")#重命名
25 print(os.stat("len_os.py"))#获取文件信息
26 print(os.sep)#当前操作系统的路径分隔符
27 print(os.linesep)#当前操作系统的换行符
28 print(os.pathsep)#当前系统的环境变量中每个路径的分隔符,linux是:,windows是;
29 print(os.environ)#当前系统的环境变量
30 print(os.name)#当前系统名称 windows系统都是nt,linux都是posix
31 res=os.system(‘ipconfig‘) #执行操作系统命令的os.system(‘dir‘),但是获取不到结果
32 print(res) #0代表是不是执行成功,0代表成功 显示乱码
33 res = os.popen(‘ipconfig‘).read()#执行操作系统命令,可以获取到命令执行结果,但是只能获取静态命令(top -n l  一秒去取一次) os.popen(‘top -n 1‘).read(),动态命令不可以(top)
34 print(res)
35
36 print(__file__)#获取到当前文件的绝对路径
37 print(os.path.abspath(__file__))#获取绝对路径
38 print(os.path.split("/usr/hehe/hehe.txt"))#分割路径和文件名
39
40 print(os.path.dirname("d:\\syz\\T_code1"))#获取父目录
41 print(os.path.basename("d:\\syz\\T_code1"))#获取最后一级,如果是文件显示文件名,如果是目录显示目录名
42 print(os.path.exists("/usr/local"))#目录/文件是否存在
43 print(os.path.isabs("."))#判断是否是绝对路径
44 print(os.path.isfile("/usr/local"))#判断是否是一个文件,1.文件要存在2.必须是一个文件
45 print(os.path.isdir("d:\\syz"))#是否是一个路径,目录是否存在
46 print(os.path.getsize(‘x.py‘))#获取文件大小,可以限制上传文件的大小
47 print(os.path.join("root",‘hehe‘,‘a.sql‘))#拼接成一个路径
48
49 for abs_path,dir,file in os.walk(‘D:\syz1\T_code1\day6‘):#获取目录
50     print(abs_path,dir,file)
51     # abs_path当前循环的绝对路径
52     # dir 目录下面所有的文件夹[]
53     # file目录下面所有文件[]

6.导入模块的顺序

 1      # python导入模块的时候顺序:
 2     # 1.从当前目录下面找需要导入的Python文件。
 3     # 2.从Python的环境变量中找 sys.path(方法二:把Python文件放到C:\\Miniconda3\\DLLs目录下面)
 4 # 导入模块的实质:
 5 #    就是把Python文件从头到尾执行一遍
 6
 7
 8 import sys
 9 print(sys.platform)#判断操作系统
10 print(sys.path)#python的安装目录环境变量
11 print()
12 print(sys.argv)#用来获取命令行里面运行Python文件的时候传入的参数
13
14 #导入模块的两种方法
15
16 #导入当前目录下面的模块,当前目录下面创建一个y python文件
17 #方法一
18 import y
19 print(y.name)
20 y.my()
21
22 #方法二
23 from y import my,name
24 my()
25 print(name)
26 #方法三,但是不建议使用,因为方法比较多的时候不知道调用的哪个
27 from yimport * #导入所有的
28 my()
29 print(name)
30
31 #导入其他目录下面的文件
32 #如果要导入其他目录下的文件,就把这个目录加入到环境变量里面
33 sys.path.append(r‘D:\syz1\T_code1\day5‘)#添加到环境变量里面,这个位置默认添加到最后一位
34 sys.path.insert(0,r‘D:\syz1\T_code1\day5‘)#添加到环境变量里面第一位
35 print(sys.path)
36 import my_random  #导入day5目录下面的my_random.py文件

下面是一个练习题:

 1 #把双数日期的日志,里面给随便写点东西
 2 # 1.获取到log目录下面的所有文件 os.walk()
 3 # 2.根据文件名来判断,是否是双数日期,分割字符串,取到日期
 4 # 3.取到值之后12%2==0
 5 # 4.打开这个文件open(),最后写入文件
 6
 7 import os
 8 for abs_path,dir,file in os.walk(‘D:\syz1\T_code1\day6\logs‘):#获取目录
 9     # print(abs_path,dir,file)
10     for f in file:
11         print(f)
12         day = f.split(‘.‘)[0].split(‘-‘)[2]
13         if int(day)%2==0:
14             file_name = os.path.join(abs_path,f)#拼接绝对路径
15             open(file_name,‘a+‘,encoding=‘utf-8‘).write(‘写东西‘)

7.sys.argv 的作用是用来获取命令行里面运行Python文件的时候传入的参数,例子

 1 #在命令里面运行的。如:Terminal里面运行
 2 import sys,os
 3 command = sys.argv
 4 print(command)
 5 if len(command)>1:
 6     cmd1 = command[1] #因为sys.argv第一个文件名,第二个才是参数
 7     if cmd1 ==‘--help‘:
 8         print(‘这个是帮助文档‘‘这个Python文件是用来说明sys.argv的作用‘)
 9     elif cmd1 ==‘os‘:
10         print(‘当前的操作系统是%s‘%sys.platform)
11     else:
12         print(‘输入命令有误‘)
13 else:
14     print(‘运行Python文件的时候要传入一个参数‘‘e.g‘‘python xx.py install‘)

在Terminal里面运行命令如:python 文件名.py  --help 测试

8.时间模块

 1 import time
 2 #1.时间戳 从Unix元年到现在过了多少秒
 3 #2.格式化好的时间
 4
 5
 6 print(time.time())#获取当前时间戳
 7 time.sleep(10)#停留多少秒之后在运行下面的
 8 print(‘嘿嘿‘)
 9 today = time.strftime(‘%Y-%M-%d %H:%M:%S‘)#获取当前日期
10 today1 = time.strftime(‘%Y%M%d%H%M%S‘)#这里的写法灵活
11 print(today)
12 print(today1)
13
14 print(time.gmtime())#默认取的的是标准时区的时间
15 print(time.localtime())#获取当前时区的时间
16
17 # 时间戳转换时间元组
18 # 1.时间戳转成时间元组time.localtime()
19 # 2.再把时间园区转化成格式化的时间
20 s = time.localtime(1514198608)
21 print(time.strftime(‘%Y-%M-%d %H:%M:%S‘,s))
22
23 # 时间戳转换时间元组  函数写法
24 def timestamp_to_format(timestamp = None,format =‘%Y-%M-%d %H:%M:%S‘):
25     # 1.默认返回当前格式化好的时间
26     # 2.传入时间戳的话,把时间戳转换成格式化好的时间,返回
27     if timestamp:
28         time_tuple=time.localtime(timestamp)
29         res=time.strftime(format,time_tuple)
30     else:
31         res = time.strftime(format)
32     return res
33 print(timestamp_to_format())
34 print(timestamp_to_format(1914198608,‘%Y-%m‘))
35
36 #2018-4-21怎么把格式化的时间转为时间元组的
37
38 print(time.strptime(‘2017-09-09‘,‘%Y-%m-%d‘))#怎么把格式化的时间转为时间元组的
39 s = time.mktime(time.strptime(‘2017-09-09‘,‘%Y-%m-%d‘))#把时间元组转成时间戳
40 print(s)
41
42
43 def strToTimestamp(str=None,format=‘%Y%m%d%H%M%S‘):
44     #20180421165643
45     #默认返回当前时间戳
46     if str:#如果传了时间的话
47         tp = time.strptime(str,format)#转成时间元组
48         res = time.mktime(tp)#再转成时间戳
49     else:
50         res = time.time()#默认取当前的时间戳
51
52     return int(res)
53 print(strToTimestamp())
54 print(strToTimestamp(‘20180421165643‘))
55 print(strToTimestamp(‘2018-09-09‘,‘%Y-%m-%d‘))
56
57 import datetime
58 datetime.datetime.today()#获取当前时间,精确到秒
59 datetime.date.today()#精确到天
60 res = datetime.date.today()+datetime.timedelta(days=-5)#获取到5天前的时间
61 res = datetime.date.today()+datetime.timedelta(days=1,minutes=5,seconds=5,weeks=5)#5秒后
62 print(res.strftime(‘%Y-%m-%d‘))

9.加密模块

 1 import hashlib
 2
 3 m = hashlib.md5()
 4 #bytes
 5 passwd = ‘yjy123‘
 6 print(passwd.encode())#把字符串转成bytes类型
 7 m.update(passwd.encode())#不能直接对字符串加密,要先把字符串转成bytes类型
 8 print(m.hexdigest())
 9
10 #md5加密是不可逆的
11
12 #加密md5函数
13 def my_md5(str):
14     new_str = str.encode()#把字符串转成bytes类型
15     # new_str = b‘%s‘%str#把字符串转成bytes类型
16     m = hashlib.md5() #实例化md5对象
17     m.update(new_str) #加密
18     return  m.hexdigest()#获取结果返回
19
20 #另外一种加密方式,加密的更长
21 m= hashlib.sha256()
22 m.update(passwd.encode())
23 print(m.hexdigest)

10,操作mysql

 1 import pymysql
 2 #1.连上数据库 账号,密码 ip 端口号 数据库
 3 #2,建立游标
 4 #3.执行sql
 5 #4.获取结果
 6 #5.关闭游标
 7 #6.链接关闭
 8 con = pymysql.connect(
 9     host=‘192.168.174.128‘,
10     user=‘root‘,
11     passwd = ‘123456‘,
12     port = 3306,
13     db =‘zuoye‘,
14     charset = ‘utf8‘
15     #port必须写int类型,charset这里必须写utf8
16 )
17 cur = con.cursor()#建立游标
18 cur.execute(‘insert into students(Id,Name,Sex,age,class,Addr) values(12,"hh","女",18,"胡巴","山东");‘)
19 #delete update insert 语句必须得commit才可以
20 con.commit()#必须得commit才可以
21 cur.execute(‘select * from students;‘)#执行sql语句
22 res = cur.fetchall()#获取所有返回的结果
23 print(res)
24 cur.close()#关闭游标
25 con.close()#关闭链接

定义函数mysql,基本不用,以后都是用封装函数

 1 def my_db(host,user,passwd,db,sql,port=3306,charset=‘utf8‘):
 2     import pymysql
 3     coon = pymysql.connect(user = user,
 4                            host = host,
 5                            port= port,
 6                            passwd = passwd,
 7                            db=db,
 8                            charset=charset
 9                            )
10
11     cur = coon.cursor()#建立游标
12     cur.execute(sql)#执行sql
13     if sql.strip()[:6].upper()==‘SELECT‘:
14         res = cur.fetchall()
15     else:
16         coon.commit()
17         res = ‘ok‘
18     cur.close()
19     coon.close()
20     return res

11.往excel里面写内容

1 import xlwt
2
3 book = xlwt.Workbook()#新建一个excel
4 sheet = book.add_sheet(‘sheet1‘)#加sheet页
5 sheet.write(0,0,‘姓名‘)#行,列,写入的内容
6 sheet.write(0,1,‘年龄‘)
7 sheet.write(0,2,‘性别‘)
8 book.save(‘stu.xls‘)#结尾一定要用.xls

原文地址:https://www.cnblogs.com/xmhd/p/8967991.html

时间: 2024-08-30 06:20:15

Python笔记五的相关文章

python笔记五:IO与文件

1.python IO:  Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘:  1)raw_input([prompt]) 函数从标准输入读取一个行,并返回一个字符串  2)input([prompt]) 函数会假设你的输入是一个有效的Python表达式,并返回运算结果.  3)eg:       str=raw_input("enter something:")  #输入的格式可以是任何形式     print str     str=input(&quo

Python笔记五(collections模块)

一.什么是模块 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的代码(.py文件) 2 已被编译为共享库或DLL的C或C++扩展 3 包好一组模块的包 4 使用C编写并链接到python解释器的内置模块 为何要使用模块? 如果你退出python解释器然后重新进入,那么你之前定义的函数或者变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来,需要时就通过python

python笔记五(函数)

一 调用函数 在写函数之前,我们先尝试调用现有的函数 >>> abs(-9) 9 除此之外,还有我们之前使用的len()等.可以用于数据类型转换的 int() float() str() bool()

python之list(学习笔记五)

python之list(学习笔记五) Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出公司里同事的名字,就可以用一个list表示: >>> worker = ['wtf','laotan','xiaoxian'] >>> worker ['wtf', 'laotan', 'xiaoxian'] 变量 worker 就是一个list.用 len() 函数可以获得list元素的个数: >>>

Python笔记(五):异常处理和数据存储

注:和上一篇有关联 (一)  finally 和 输出异常信息 try:       the_man = open(r'C:\Users\123456\Desktop\test.txt')       print(the_man.readline(),end="") except IOError as err:     #输出异常信息     print("异常信息:"+ str(err)) #str()转换为字符串 finally:     #不管是否发生异常一定

Python笔记之不可不练

如果您已经有了一定的Python编程基础,那么本文就是为您的编程能力锦上添花,如果您刚刚开始对Python有一点点兴趣,不怕,Python的重点基础知识已经总结在博文<Python笔记之不可不知>中,尽管本文是自己学习Python过程中的总结,在大神看来,或许略欠火候,希望批评指正,万分感谢! 本文是作者学习成绩的见证,请尊重劳动成果!版权归作者和博客园共有,欢迎转载,但请保留本文出处http://www.cnblogs.com/itred/p/4687287.html ,  作者:itRed

玩蛇(Python)笔记之基础Part2

玩蛇(Python)笔记之基础Part2 一.列表 1.列表 别的语言叫数组 python牛逼非要取个不一样的名字 1 age = 23 2 name = ["biubiubiu", "jiujiujiu", 22, age] 3 # namecopy = name 4 # namecopy.pop() 5 print(name) 6 # print(namecopy) List 2.列表取值 正常index 从零开始,,取倒数加负号 倒数第一就是[-1] 3.列表

孤荷凌寒自学python第五十二天初次尝试使用python读取Firebase数据库中记录

(完整学习过程屏幕记录视频地址在文末) 今天继续研究Firebase数据库,利用google免费提供的这个数据库服务,今天主要尝试使用firebase_admin模块来连接firebase数据库. 获得成功. 一.简单总结下今天对firebase_admin模块对象的学习 (一)要通过firebase_admin模块连接到firebase数据库,那么必须要拥有一个从firebase网站上自己的数据库的[用户和权限]处设置的'连接私钥'等相关信息的一个json文件,并下载到项目文件夹中来. (二)

Caliburn.Micro学习笔记(五)----协同IResult

Caliburn.Micro学习笔记(五)----协同IResult 今天说一下协同IResult 看一下IResult接口 /// <summary> /// Allows custom code to execute after the return of a action. /// </summary> public interface IResult { /// <summary> /// Executes the result using the specif