python字符串去头尾_悉尼大学某蒟蒻的Python学习笔记
About me
本蒟蒻是悉尼大學計算機科學大一的學生,這篇博客記錄了學習INFO1110這門課的一些心得,希望能對大家有幫助。
To start with
因為計算機只能識別機器語言,所以我們需要編譯器將其他語言翻譯成機器語言。編譯器有編譯(complier)和解釋(interpreter)兩種。python是屬于解釋型語言。
- 編譯型語言:程序在執行前需要一個專門的編譯過程,把程序編譯成機器語言的文件,運行時不需要重新翻譯,直接使用編譯的結果。效率高,跨平臺略差
- 解釋型語音:編寫的程序不進行預先編譯,以文本方式儲存代碼,會將代碼一句一句直接運行。要先解釋再運行
Python的安裝網上教程很多,這里不再贅述
執行python的兩種方式
1. 解釋器運行
用記事本(e.g. sublime)寫好文件,保存在本地(記得文件要以.py結尾,這能讓計算機知道這是一個python文件),在終端輸入:
//python3 文件名.py python3 hello.py你也可以編譯python文件:
python -m py_compile HelloWorld.py //This makes a .pyc file for your program. The class file is called HelloWorld.class python HelloWorld.pyc2. 交互式運行:
在終端輸入python3進入Python環境,不需要輸入要執行的文件名,多用于驗證局部語法或代碼,但不能保持和運行過大程序 。輸入exit()退出環境
3. IDE(集成開發環境):
集成了開發開發軟件需要的工具包括圖形界面,代碼編輯器,解釋器,調試器,比較常用的是pycharm。
變量
變量類型:
- 數字型:
int: 整數, e.g. 10
bool: 布爾,e.g. 0,1,True, False
float: 浮點數/小數,e.g. 0.5
- 非數字型
str:字符串
list: 列表
tuple: 元組
dict: 字典
Python允許你同時為多個變量賦值
a = b = c = 1 print(a) # 1 print(b) # 1也可以為多個對象指定多個變量。
a, b, c = 1, 2, "Joe" print(a) # 1 print(c) # Joe注釋
注釋里的代碼不會被執行。
快捷鍵:sublime和vscode里,選中要注釋的代碼(一行的話可以 ctrl+L),ctrl+/ 一鍵注釋
# 這是一個當行注釋,不會被運行 ''' 這是一個多行注釋 程序員最討厭兩件事: 第一是寫注釋 第二是別人不寫注釋 '''字符串
合并字符串
用+號把兩個字符串連接起來
first_name=“Joe” last_name=“He” full_name=first_name+" "+last_name print(full name) //Joe He修改字符串大小寫
str.title(): 字符串內所有的首字母母大寫, 注意are’t會變成Are’T
str.capitalize(): 字符串的第一個單詞的首字母大寫, “there is a tree” -> “There is a tree”
str.upper(): 字符串的所有單詞大寫
str.lower(): 字符串的所有單詞小寫
name="joe he" print(name.title()) //Joe Heprint(name.capitalize()) //Joe heprint(name.upper()) //JOE HEprint(name.lower())//joe he轉義字符
Python識別字符串時,以 ’ (quote) 開頭,以 ’ 結尾。 如果文字中有 ’ 或 ‘’ 會導致python無法讀完全部文字。e.g. ‘I’am OK.’。這時候我們需要轉義字符
// 轉義 print('I'm ok.') // 制表符 (tab)t print("tpython") // 換行符 n print("JannFebnMarnAprnMaynJunnJulnAug" )刪除頭尾的空白
忽略新行
Python中每次print都會另起一行, 默認是print(‘xx’, end = ‘n’),我們可以用一下方法忽略新行
print("line1 line2 line3") // line1 line2 line3print("#", end="")格式化
當我們想把變量以某種特殊格式輸出時,我們可以用格式化
//把string看做object,調用format method name = 'Joe' print("hello, {}".format(name))一些常用的格式化:
#()里可以是字符串或數字 '{} {}'.format('one', 2) #'one 2'#傳入順序可以通過數字1,2換 '{1} {0}'.format('one', 'two') #'two one'#format里套format '{:>{}}'.format('hello', 10) #' hello'#打印{} '{{{}}}'.format('hello') #{hello}String類
#10個字符框,靠右 '{:>10}'.format('test') #' test'#靠左 '{:10}'.format('test') #'test '#靠左,10位,剩余的用_補齊 '{:_<10}'.format('test') #'test______'#居中 '{:^10}'.format('test') #' test '#只取前幾個字符 '{:.5}'.format('xylophone') # xylop ' '{:10.5}'.format('xylophone') #'xylop 'Number類
#整數 '{:d}'.format(42) #'42'#保留小數點后六位 '{:f}'.format(3.141592653589793) # 3.141593 #不足4位用空格補 '{:4d}'.format(42) # ' 42'#六位,不足時0占位,保留到小數點后2位 '{:06.2f}'.format(3.141592653589793 #003.14 '{:+d}'.format(42) # +42 '{: d}'.format((- 23)) # -23 '{:=+5d}'.format(23) # + 23讀寫文檔
Python可以讀入并改寫文檔 (.txt等),常見的有兩種方法:
file = open('filename.txt', 'r') print(file.readline()) file.close()orwith open('filename.txt', 'r') as file:print(file.readline())這兩個區別是第一種方法最后需要 file.close(), 第二種不需要。open()的第一個參數是要打開文件的名字,第二個參數是打開的模式(常用的模式有’r’和’w’)。
read模式
讀文檔有read(), readlines(), readline()這幾種方法
// test.txt, 與py文件在同一目錄下。 deposit 5.00 withdraw 2.05 deposit 15.30 withdraw 935.50 wdeposit 500.50read()
讀取全部內容,返回一整個字符串
f = f.open('test.txt', 'r')print(f.read()) # deposit 5.00 withdraw 2.05 deposit 15.30 withdraw 935.50 deposit 500.50# 如果想返回一個數組: print(f.read().split()) # ['deposit', '5.00', 'withdraw', '2.05', ..]f.close()readline()
讀取一行,返回一個字符串
注意myfile.readline()一定要賦值給line,要不然if myfile.readline==""會跳過一行
readlines()
讀取全部內容,返回一個數組。會把行末尾的n讀進去,所以要手動去除
a=myfile.readlines() print(a) #['deposit 5.00n', 'withdraw 2.05n', 'deposit 15.30n', 'withdraw 935.50n', 'deposit 500.50'] lines=[] for line in a: lines.append(line.rstrip("n")) print(lines) #['deposit 5.00', 'withdraw 2.05', 'deposit 15.30', 'withdraw 935.50', 'deposit 500.50']Write模式
往file里寫內容,會清空之前file的內容。不想內容被清空可以用mode 'a'
f.write()的括號里只能是字符串
數組
數組是包含多個相同類型值的連續內存塊。通過index來訪問和修改數組中間儲存的值。
# 在python中數組可以存放不同類型的值 a = [1, 'hello'] print(a[0]) # 1a[0] = 'hi' print(a) # ['hi', 'hello']#在python中,兩個數組可以直接做賦值運算 b = a print(b == a) #Ture創建特殊數組的幾個技巧:
a = [0]*4 print(a) #[0,0,0,0]a = list(range(5)) print(a) #[0, 1, 2, 3, 4, 5] #range(start,stop,step)[i for i in range(5)] print(a) #[0, 1, 2, 3, 4, 5]修改列表
motorcycles=['honda','yamaha','suzuki']在list中穿插一個字符串并連接起來
print('#'.join(stuff[3:5])) # Telephone#Light轉化字符串時會拆開:
組織列表
sort方法只會改變調用他的數組,沒有返回值
a=[3,2,1] b=a.sort() print(a) #[1,2,3] print(b) #None與字母順序相反:向方法傳遞參數sort(reverse=True)
2. 臨時排序
函數sorted會返回一個新的數組
a=[3,2,1] b=sorted(a) print(b) #[1,2,3]復制數組及枚舉
在函數中傳入數組時,傳入的是數組的地址,所以會改變原來的數組。如果不想原來的數組被改變,我們就需要復制一個新的數組。
new_list = old_list.copy() # or new_list = old_list[:] # or new_list = list(old_list)使用enumerate進行枚舉:
notes = [50,20,10] new_collection = enumerate(notes) print(list(new_collection)) # ((0,50),(1,20),(3,5))notes = [50,20,10] for (index, v) in enumerate(notes): print("{}{}".format(v,index))或者使用zip:
indices =[0,1,2] notes = [50,20,10] new_collection = zip(indices, notes) print(list(new_collection))總結
以上是生活随笔為你收集整理的python字符串去头尾_悉尼大学某蒟蒻的Python学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android edittext不可复制
- 下一篇: react前端显示图片_在react里怎