Python學習之路第二周匯總
阿新 • • 發佈:2018-09-09
utf-8 bre val bit 左右 路徑 寫到 異常 內容
# Author:Source #-*-coding:utf-8 -*- #使用第三方庫,import 庫名 ‘‘‘import getpass password=getpass.getpass(‘Please input your password:‘) print(password)‘‘‘ #自己建一個庫,要讓其生效要放在同一目錄,或者放在site-packages(第三方庫)。若是在不同目錄,需要添加新路徑。 ‘‘‘account=input(‘input account!‘.capitalize()) password=input(‘import something‘.capitalize())‘‘‘ #模塊初識(os模塊)os模塊就是對操作系統進行操作 import os os.system(‘dir‘)#打印當前目錄名稱信息,結果是直接輸出到屏幕,不能保存。 cmd_res=os.popen(‘dir‘)#內存的對象地址 #os.mkdir(‘attempt‘)#創建文件夾 #print(cmd_res.read()) #模塊初識(sys模塊) import sys print(sys.path)#打印環境變量,模塊的地址 print(sys.argv)#腳本相對路徑 ,取參數 #編譯型語言是在程序執行之前,先通過編譯器將高級語言轉化為機器所能讀懂的機器語言。在執行時不需要翻譯,直接執行就可以了。 #典型的例子是C語言。解釋型語言是在程序執行時解釋器逐行對程序進行解釋,然後直接運行。python也是一門先編譯後解釋的語言。 #Python運行過程:python程序運行時先將編譯結果保存到位於內存的PyCodeObject,運行結束時python解釋器將結果寫到pyc文件中。 #下次運行程序時,python程序會先檢查硬盤中的pyc文件,否則再重復上面動作。當程序更新時,會檢查pyc文件與源程序的更新時間。 #數據類型。整數,長整數是比較大的數字。3.24是浮點數,5.24E-4指的是5.24*10^-4。 #int類型。在32位中-2**32——2**32-1,在64為-2**63——2**63-1。 #long(長整型),在python2.2起沒了。 #三元運算 ‘‘‘number=input(‘Please input a number:‘) if number.isdigit(): number=int(number) result = ‘adult‘.capitalize() if number>=18 else ‘nonage‘.capitalize() print(result)‘‘‘ #進制轉換 #1、二進制轉化為十六進制,取四合一法,即從二進制的小數點為分界點,向左(或向右)每四位取成一位。當取到最高位(最低位)如果 #無法湊足四位,就可以在小數點的最左邊(或最右邊)補0,進行換算。 #十六進制用字母H表示,也可以用0X前綴表示,比如0X。 #十六進制轉二進制。方法是一份四,即一個十六進制數分為四個二進制數。 ‘‘‘number_decimalism=input(‘Please input a decimalism numeral:‘) if number_decimalism.isdigit(): number_decimalism=int(number_decimalism) print(‘十進制數為:‘,number_decimalism) print(‘轉換為二進制數:‘,bin(number_decimalism)) print(‘轉換為八進制數:‘,oct(number_decimalism)) print(‘轉換為十六進制:‘,hex(number_decimalism)) else: print(‘\033[31;1mPlease input legal numeral!\033[0m‘)‘‘‘ #字符串str與二進制bytes轉換 #string通過encode變成bytes conding=‘s12‘.encode(‘utf-8‘) print(conding) #bytes通過decode編程string print(conding.decode()) #列表元組操作 #創建列表,列表中的內容用逗號隔離 list=[‘datou‘,‘erbai‘,‘sanmao‘,‘lisi‘,‘wangwu‘] #切片操作,顧頭不顧尾 print(list) print(list[2])#切片第三個 print(list[0:2])#切片前兩個 print(list[:2])#切片前兩個 print(list[1:4])#切片中間三個 print(list[2:5])#切片最後三個 print(list[2:])#切片最後三個 print(list[-1])#切片最右邊一個 print(list[-3:])#切片最右邊三個 #增添操作 list.append(‘liuliu‘)#直接添加 list.insert(1,‘erB‘)#指定位置添加 print(list) #修改列表值 list[1]=‘ZhenErB‘ print(list) #刪除 list.remove("lisi") print(list) del list[1] print(list) list.pop(0) print(list) #查找 print(list.index("wangwu"))#顯示查詢數據在列表位置,用列表的下標表示 print(list[list.index("wangwu")]) #統計 print(list.count(‘liuliu‘)) #清空 print(list.clear()) #添加 list.append("jiaren") print(list) list.insert(0,‘jialing‘) print(list) #反轉 list.reverse() print(list) #排序,排序規則可能是頭字符的類型,一部分特殊字符>數字>另一部分特殊字符>英文>漢語 list.append(‘12a‘) list.append(‘a2‘) list.append(‘>a1‘) list.append(‘b2‘) list.append(‘&a2‘) list.append(‘2b‘) list.append(‘<s2‘) list.append(‘中文‘) list.append(‘翻譯‘) list.sort() print(list) #反轉 fake_list=[‘wanglaoban‘,[‘lidatou‘,‘找到我了‘],‘xiaxiage‘] print(list) print(fake_list) print(fake_list[1][1]) list.extend(fake_list) print(list) #淺COPY import copy new_list=[‘dageda‘,[‘xiaobudian‘,‘dabudian‘],‘sanmaoge‘,‘zaodiansi‘,‘wanglaowu‘] shallow1=copy.copy(new_list)#方法一 copy_new_list=new_list.copy()#方法二 shallow2=new_list[:]#方法三 print(copy_new_list) print(new_list) copy_new_list[1][1]=‘改了就一塊改‘ print(copy_new_list) print(new_list) print(shallow1) print(shallow2) #深copy import copy deep_copy_new_list=copy.deepcopy(new_list) print(deep_copy_new_list) print(new_list) deep_copy_new_list[1][1]=‘這個時候可以改了‘ print(deep_copy_new_list) print(new_list) #字符串操作 attempt=‘gJy121‘ print(attempt.capitalize())#將首字母變為大寫 print(attempt.casefold())#將大寫字母全部變為小寫字母 print(attempt.center(50,‘.‘))#設置一個範圍,然後用符號填充剩余的空間 print(attempt.count(‘g‘))#統計字符出現的次數,可以選擇開始結束為位置 print(attempt.encode(‘GB18030‘))#指定編碼編譯 print(‘gJy121\t gg‘.expandtabs(40))#指定空格的長度 print(attempt.endswith(‘1‘))#結束的標誌是否是該字符。是則True,錯則False print(‘My Name is {Name} and my occupation is {occupation}.‘.format(Name=‘GJY‘,occupation=‘habitual loafer‘))#Methods 1 print(‘My Name is {0} and my occupation is {1}.‘.format(‘GJY‘,‘habitual loafer‘))#Methods 2,{}得從0開始 print(attempt.find(‘2‘,0,5))#Python find() 方法檢測字符串中是否包含子字符串 str ,如果指定 beg(開始) 和 end(結束) 範圍, # 則檢查是否包含在指定範圍內,如果包含子字符串返回開始的索引值,否則返回-1。 print(‘My Name is {Name} and my occupation is {occupation}.‘.format_map({‘Name‘:‘GJY‘,‘occupation‘:‘habitual loafer‘})) print(attempt.index(‘g‘))#查詢目標的第一個下標,不存在會報錯 print(attempt.isdigit())#查詢是否是數字 print(attempt.isalnum())#檢測字符串是否由字母和數字組成。 print(attempt.isalpha())#所有字符都是字母則True print(attempt.isdecimal())#Python isdecimal() 方法檢查字符串是否只包含十進制字符 print(attempt.isidentifier())#檢測字符串是否是字母開頭 print(attempt.islower())#Python islower() 方法檢測字符串是否由小寫字母組成。 print(attempt.isnumeric())#Python isnumeric() 方法檢測字符串是否只由數字組成。這種方法是只針對unicode對象。 print(attempt.isprintable())#判斷是否為可打印字符 print(attempt.isspace())#Python isspace() 方法檢測字符串是否只由空格組成。 print(attempt.istitle())#Python istitle() 方法檢測字符串中所有的單詞拼寫首字母是否為大寫,且其他字母為小寫。 print(attempt.isupper())##Python isupper() 方法檢測字符串中所有的字母是否都為大寫。 print(‘+‘.join([‘24‘,‘6‘,‘98‘]))#Python isupper() 方法檢測字符串中所有的字母是否都為大寫。 print(‘+‘.join(‘246810‘)) print(attempt.ljust(50,‘$‘))#Python ljust() 方法返回一個原字符串左對齊,並使用空格填充至指定長度的新字符串。如果指定的長度小於原字 # 符串的長度則返回原字符串。 print(attempt.rjust(50,‘%‘))#Python rjust() 方法返回一個原字符串右對齊,並使用空格填充至指定長度的新字符串。如果指定的長度小於原字 # 符串的長度則返回原字符串。 print(attempt.lower())#Python lower() 方法轉換字符串中所有大寫字符為小寫。 print(attempt.swapcase())#swapcase() 方法用於對字符串的大小寫字母進行轉換。 print(‘ \nstrip‘.lstrip())#Python lstrip() 方法用於截掉字符串左邊的空格或指定字符。 print(‘strip\n ‘.rstrip())#Python rstrip() 方法用於截掉字符串右邊的空格或指定字符。 print(‘ \nstrip \n‘.strip())#截斷字符串左右兩邊的空格或指定字符。 #Python maketrans() 方法用於創建字符映射的轉換表,對於接受 #兩個參數的最簡單的調用方式,第一個參數是字符串,表示需要轉換的字符,第二個參數也是字符串表示轉換的目標。 plaintext=‘123456‘ encrypt=‘abcdef‘ a=str.maketrans(plaintext,encrypt) example=‘852643‘ print(example.translate(a)) print(‘source123‘.partition(‘1‘))#partition() 方法用來根據指定的分隔符將字符串進行分割。 #Python replace() 方法把字符串中的 old(舊字符串) 替換成 new(新字符串),如果指定第三個參數max,則替換不超過 max 次。 print(‘source123‘.replace(‘so‘,‘re‘)) print(‘heafafaeh‘.rfind(‘h‘))#Python rfind() 返回字符串最後一次出現的位置,如果沒有匹配項則返回-1。 print(‘finally‘.rindex(‘lly‘))#Python rindex() 返回子字符串 str 在字符串中最後出現的位置, # 如果沒有匹配的字符串會報異常,你可以指定可選參數[beg:end]設置查找的區間。 print(‘fadf12sa1‘.rpartition(‘1‘))#partition() 方法用來根據指定的分隔符將字符串進行分割。從右向左。 #與partition區別 print(‘fadf12sa1‘.partition(‘1‘)) #Python rsplit() 方法通過指定分隔符對字符串進行分割並返回一個列表,默認分隔符為所有空字符, #包括空格、換行(\n)、制表符(\t)等。類似於 split() 方法,只不過是從字符串最後面開始分割。 print(‘faf\tafd\n123 44‘.rsplit()) #Python splitlines() 按照行(‘\r‘, ‘\r\n‘, \n‘)分隔, # 返回一個包含各行作為元素的列表,如果參數 keepends 為 False,不包含換行符,如果為 True,則保留換行符。 print(‘faf\rafd\n123\r\n44‘.splitlines(True)) print(‘fadf12sa1‘.split(‘1‘))#Python split() 通過指定分隔符對字符串進行切片,如果參數 num 有指定值,則僅分隔 num 個子字符串 #與partition的區別:split不包含分割符 #Python startswith() 方法用於檢查字符串是否是以指定子字符串開頭,如果是則返回 True, # 否則返回 False。如果參數 beg 和 end 指定值,則在指定範圍內檢查。 print(attempt.startswith(‘gJy‘)) print(‘hello world!‘.title())#Python title() 方法返回"標題化"的字符串,就是說所有單詞的首個字母轉化為大寫,其余字母均為小寫 print(attempt.upper())#Python upper() 方法將字符串中的小寫字母轉為大寫字母。 print(attempt.zfill(50))#Python zfill() 方法返回指定長度的字符串,原字符串右對齊,前面填充0 #字典操作 dictionary={ ‘casual1‘:‘number1‘, ‘casual2‘:‘number2‘, ‘casual3‘:‘number3‘, ‘casual4‘:‘number4‘ } print(dictionary) #查字典 print(dictionary[‘casual3‘])#要去鍵值要正確 print(dictionary.get(‘casual2‘)) print(‘casuall‘ in dictionary) #改字典 dictionary[‘casual1‘]=‘Yanghuizhen‘ dictionary[‘cannot help but‘]=‘yang hui zhen‘.title()#不存在則添加 print(dictionary) #刪除 dictionary.pop(‘cannot help but‘) del dictionary[‘casual4‘] print(dictionary) dictionary.popitem()#重新運行會重新隨機刪除 print(dictionary) #多級字典嵌套操作 ‘‘‘message={ ‘Source‘:{ ‘age‘:[‘23‘], ‘education background‘:{‘Yango University ‘:[‘graduate‘]} }, ‘Yang‘:{ ‘age‘:[‘23‘], ‘interset‘:[‘To you i know nothing about.‘] } } #查字典 print(message.get(‘Source‘)) print(message[‘Yang‘][‘age‘]) print(‘Source‘in message) #改字典 message[‘Source‘][‘AGE‘.lower()]=‘24‘ message.setdefault(‘Hero‘,{ ‘age‘:[‘20‘], ‘significance‘:[‘i don not know.‘.capitalize()] })#添加 print(message)‘‘‘ print(dictionary) print(dictionary.values()) print(dictionary.keys()) Reserve={ ‘Pengfei‘:‘zui shuai‘.capitalize() } dictionary.update(Reserve) print(dictionary,‘\n‘,Reserve) #items將字典轉化為列表 print(dictionary) print(dictionary.items()) #fromkeys()函數用於創建一個新字典,以序列 seq 中元素做字典的鍵,value 為字典所有鍵對應的初始值。 dictionary2=dict.fromkeys([1,2,3],[‘a‘,‘b‘,‘c‘]) print(dictionary2) dictionary2[1][1]=‘x‘ print(dictionary2) #循環dict dictionary.items() for items in dictionary: print(items,dictionary[items]) for items,i in dictionary.items(): print(items,i) #New shopping: # Author:Source file_money=open(‘money.txt‘,mode=‘r‘) read_file_moeny=file_money.read() print(‘Your balance have:‘,read_file_moeny) if read_file_moeny==‘‘ : while True: salary=input("Please you input your salary:") if salary.isdigit(): salary=int(salary) break else: print(‘text is not a legal character.‘.capitalize()) continue else: if read_file_moeny.isdigit(): read_file_moeny=int(read_file_moeny) salary=read_file_moeny else: print("text is not a legal character.".capitalize()) commodity=[ ("iphoneX".title(),8388), ("ipad mini4".title(),2400), ("dragon fruit".title(),6), ("alkaline mineral water".title(),2), ("toothpaste".title(),12), ] shopping_cart=[] #print(commodity) while True: for item in commodity: print(commodity.index(item),item) #for i,item in enumerate(commodity):#python 的for in # print(i,item) number=input("Fancy a commodity:") if number.isdigit(): number=int(number) print(len(commodity)) if number<len(commodity) and number>=0: list_price=commodity[number] if list_price[1] <= salary: shopping_cart.append(list_price) salary-=list_price[1] print("You aleady buy %s and your balance have \033[31;1m%s\033[0m."%(shopping_cart,salary)) else: print("\033[31;1mYour balance is not enough.\033[0m") if commodity[3][1]>salary: while True: print(‘\033[31;1mYou don\‘ not have much monty.Do you want to increase your savings?\033[0m‘.capitalize()) Increase=input(‘Y or N‘) if Increase==‘Y‘: while True: salary=input(‘how much money do you want to deposit? ‘.capitalize()) if salary.isdigit(): salary=int(salary) break else: print("\033[31;1millegal character.\033[0m".capitalize()) continue elif Increase==‘N‘: break else: continue else: print("\033[41;1mFollow option\033[0m") elif number==‘q‘: print("You aleady buy %s and your balance have \033[31;1m%s\033[0m."%(shopping_cart,salary)) file_money=open(‘money.txt‘,mode=‘w‘) file_money.write(str(salary)) file_commodity=open(‘commodity.txt‘,mode=‘a‘) file_commodity.write(str(shopping_cart)) exit() else: print("\033[31;1mInput error!\033[0m")
Python學習之路第二周匯總