python自动化第五次课
Posted catherine093
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python自动化第五次课相关的知识,希望对你有一定的参考价值。
首先讲函数、
1.内置函数
python自带的一些函数,直接拿过来能用的
id() #看内存地址
type() #看数据类型
print() #打印
input() #输入
list() #转list
set()# 转集合
str()#转字符串
dict()#转字典
int()#转int
float()#转float类型
len()#取长度
max()
min()
dir() #帮助你的
sorted()#排序
round(11.00011,2)#保留几位小数
2.自己定义的函数:
def say(): #函数名 print(‘hello‘)#函数体
注意:函数不调用是不会被执行的
say()#调用就可以了
关于函数的参数:必填参数和默认值参数,默认值参数可以不填
1 def calc(a,b): #形参, 形式参数 2 #位置参数,必填参数 3 res = a * b 4 print(‘%s * %s = %s‘%(a,b,res)) 5 6 # calc(7,8) #实参,实际参数 7 def op_file(file_name,conent=None): 8 #默认值参数,它是非必填的 9 f = open(file_name,‘a+‘,encoding=‘utf-8‘) 10 f.seek(0) 11 if conent:#不为空代表写 12 f.write(conent) 13 f.flush() 14 else: 15 all_users = f.read() 16 return all_users #调用完函数之后,返回什么结果 17 f.close() 18 # res = op_file(‘a.txt‘) 19 # print(res) 20 def haha(): 21 #函数里面遇到return函数就立即结束了 22 for i in range(5): 23 print(i) 24 if i==3: 25 return #只写一个return的话,就返回None 26 # res = haha() 27 # print(res)
1 def is_float(s): 2 s = str(s) 3 if s.count(‘.‘)==1:#小数点个数 4 s_list = s.split(‘.‘) 5 left = s_list[0] #小数点左边 6 right = s_list[1] #小数点右边 7 if left.isdigit() and right.isdigit(): #正小数 8 return True 9 elif left.startswith(‘-‘) and left.count(‘-‘)==1 and 10 left.split(‘-‘)[1].isdigit() and 11 right.isdigit(): #判断合法负小数 12 return True 13 return False
关于函数的不固定参数:参数组和关键字参数
def syz(a,*args): #参数组 *arg为非必填参数,不限制参数个数 print(a) username = args[0] pwd = args[1] age = args[2] # syz(‘niuhanyang‘,‘2423‘,2323) # syz(‘1s‘,‘sdf‘) def syz2(time,**kwargs): #关键字参数,为非必填参数,不限制参数个数 print(kwargs) syz2(‘sdf‘) #{} syz2(name=‘nhy‘,age=38,time=‘20180912‘) syz2(‘2018‘,name=‘nhy‘,age=38,addr=‘回龙观‘,home=‘河南‘) syz2(time=‘xx‘,xx=‘xxx‘)
关于递归,也就是函数自己调用自己
def test1(): num = int(input(‘please enter a number:‘)) if num%2==0:#判断输入的数字是不是偶数 return True #如果是偶数的话,程序就退出了,返回true print(‘不是偶数请重新输入!‘) return test1()#如果不是偶数的话继续调用自己,输入值 # print(test1())#调用test #少用递归,递归最多递归999,递归的效率不高。
第二点 变量,常量
变量分局部变量和全局变量,
局部变量:只在函数内有效,出了函数无效
全局变量:一旦被修改,会影响整个代码,所以不安全,如果要修改全局变量,需要先声明下你要修改的是全局变量
常量就是一个不变的值
name = ‘谢红‘ #全局变量 #如果要改全局变量的话,那你要先声明一下,你修改值是全局变量 def sayName(): global name name = ‘刘伟‘ print(‘name1‘,name)
模块:
random 模块 json 模块 引入后使用
import random,json,string
random,string
1 import random,string 2 # print(string.printable) #代表 数字+字母+特殊字符 3 # print(random.randint(1,10)) #随机取整数 4 # print(round(random.uniform(1,99),2))#随机小数 5 # print(random.choice([1,2,3,4])) #只能随机取1个元素 6 # print(random.sample(string.printable,5)) #随机取N个元素,返回的是list
1 pickts = [‘A‘,‘J‘,‘Q‘,‘K‘,2,3,4,5,6] 2 random.shuffle(pickts) #只能传list 3 print(pickts)
json模块
引入json模块
import json
import json #json串是一个字符串 f = open(‘product.json‘,encoding=‘utf-8‘) # res = f.read() # product_dic = json.loads(res) #把json串,变成python的数据类型 # print(json.load(f)) #传一个文件对象,它会帮你读文件 d = { ‘zll‘:{ ‘addr‘:‘北京‘, ‘age‘:28 }, ‘ljj‘:{ ‘addr‘:‘北京‘, ‘age‘:38 } } fw = open(‘user_info.json‘,‘w‘,encoding=‘utf-8‘) # dic_json = json.dumps(d,ensure_ascii=False,indent=4) #字典转成json,字典转成字符串 # fw.write(dic_json) json.dump(d,fw,ensure_ascii=False,indent=10) #操作文件
关于修改文件
方法一、
1、打开一个文件,获取到他的所有内容
2、对内容进行修改
3、清空原来文件的内容
4、把新的内容写进去
f = open(‘username‘,‘a+‘) f.seek(0) all_str = ‘‘ for s in f: new_s =‘syz_‘+s all_str=all_str+new_s f.seek(0) f.truncate() #清空文件内容 f.write(all_str) f.close()
方法二、
1.打开2个文件
2.a文件
3.写一行写到b文件
4.a.txt a.txt.bak
5.删掉a文件,b文件名字改成a文件名 引入OS
import os with open(‘words‘,encoding=‘utf-8‘) as fr,open(‘.words.bak‘,‘w‘,encoding=‘utf-8‘) as fw: for line in fr: new_line = line.replace(‘花‘,‘flower‘) fw.write(new_line) os.remove(‘words‘) #删除文件 os.rename(‘.words.bak‘,‘words‘) #改名
以上是关于python自动化第五次课的主要内容,如果未能解决你的问题,请参考以下文章