標籤:rgs truncate sam type shuffle xxx ace 數組 rand
首先講函數、
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的話,就返回None26 # 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 True13 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,string2 # 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) #只能傳list3 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_sf.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 oswith 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自動化第五次課