1. 程式人生 > >Python學習之路第二周匯總

Python學習之路第二周匯總

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學習之路第二周匯總