python基础:python循环、三元运算、字典、文件操作
目錄:
- python循環
- 三元運算
- 字符串
- 字典
- 文件操作基礎
一、python編程
在面向過程式編程語言的執行流程中包含:
順序執行
選擇執行
循環執行
在多分支的if表達式中,即使多個條件同時為真,也只會執行一個,首先測試為真;
- 選擇執行
       單分支的if語句
         if CONDITION:
           條件為真分支
         
       雙分支的if語句
         if CONDITION
           條件為真分支
         else
           條件不滿足時分支
 
       多分支的if語句
         if CONDITION1
           條件1為真分支
         elif CONDITION2
           條件2為真分支
         elif CONDITION3
           條件3為真分支
           ...
         elif CONDITIONn
           條件n為真分支
         else
           所有條件均不滿足時的分支
示例:
age = 56 guess_num = int(input('your guess num: '))if guess_num == 56:print('Congratulations, you got it') elif guess_num > age:print('try smaller...') else:print('try bigger...')
?
- ?循環執行
for循環:
for循環是遍歷文件中的每個元素來實現循環;元素遍歷完成即退出循環;
示例:
>>> for i in range(10):
print(i) ... 0 1 2 3 4 5 6 7 8 9
while循環:
是計算機編程語言中的一種控制流程語句。主要由一個代碼塊(作為循環體)和一個表達式(作為循環條件)組成,表達式為布爾(boolean)型。循環體內的代碼執行一次后,程序會去判斷這個表達式的返回值,如果這個表達式的返回值為“true”(即滿足循環條件)時,則循環體內的代碼會反復執行,直到表達式的返回值為“false”(即不滿足循環條件)時終止。程序會在每次循環體每執行一次后,進行一次表達式的判斷。
?示例:
count = 0 while True:print(count)if count > 9:breakcount+=10 1 2 3 4 5 6 7 8 9 10
循環進入與退出的條件:
for循環
進入條件:列表元素非空
退出條件:列表元素遍歷完成
while循環
進入條件:條件測試結果為真
退出條件:條件測試結果為假
循環控制語句:
continue: ?跳出本輪循環,進入下一輪循環;
break:?跳出當前層整個循環;
示例:
for i in range(10):if i == 5: #表示如果循環時i等于5,如果是continue則直接跳過本輪循環,不進行打印continueprint(i)0 1 2 3 4 6 7 8 9 for i in range(10):if i == 5:for j in range(10,20):if j == 16:break #循環時j等于16,使用break則跳出本層循環,而不會跳出整個循環;print(j)print(i)0 1 2 3 4 10 11 12 13 14 15 5 6 7 8 9
注:在python中pass表示占位符的意思;
2. 三元運算:
三目運算符,計算機c語言的重要組成部分。條件運算符是唯一有3個操作數的運算符,所以有時又稱為三元運算符。
<表達式1>?<表達式2>:<表達式3>; "?"運算符的含義是: 先求表達式1的值, 如果為真, 則執行表達式2,并返回表達式2的結果 ; 如果表達式1的值為假, 則執行表達式3 ,并返回表達式3的結果。
示例:
a = 10 b = 15 c = a+b if a<b else a-b print(c)253. ?元組
元組只有index與count兩個方法;元組是不可變的;又名只讀列表;
示例:
tup=('mac','jack','bike','bike','iphone') print(tup.count('bike')) print(tup.count('jack')) print(tup.index('iphone'))2 1 44. 字符串
字符串是不可改變的;python中一個字符串或一個列表或列表中一個元素就是一個對象;在python中所有方法都是通過.來進入調用的;
示例:
>>> name = 'hsggj' >>> name.index('s') #查找索引位置 1>>> name.capitalize() #首字母成大寫 'Hsggj'>>> name='Hsggj Guo' >>> name.casefold() #大寫全部替換成小寫 'hsggj guo'>>> name.count('g') #統計字數 2>>> name.find('Gu') #查找的意思,找到則返回位置,找不到則返回-1 6>>> name.endswith('uo') #是否以uo結束,如果是則打印True,否則打印False True>>> name='hsggj\tguo' >>> name.expandtabs(20) #expandtabs是替換\t的空格數,20表示20個空格 'hsggj guo'字符替換的兩種方法: >>> msg='my name is {0}, and i am {1} years old' >>> msg.format('hsggj',22) 'my name is hsggj, and i am 22 years old'>>> msg1='my name is {name}, and i am {age} years old' >>> msg1.format(age=22,name='hsggj') 'my name is hsggj, and i am 22 years old'>>> name='hsggj' >>> name1='My Name Is Hsggj' >>> d='123' >>> 'ad'.isalpha() #表示是否為字符串 True>>> name.isalpha() #表示是否為字符串 True>>> 'a2d'.isalnum() #是否為字符串和數字 True>>> name.isalnum() #是否為字符串和數字 True>>> d.isdigit() #是否為數字 True>>> name.isidentifier() #變量名是否合法 True>>> name.isupper() #是否全大寫 False>>> name.islower() #是否全小寫 True>>> d.isdecimal() #是否包含十進制數字 True>>> d.isnumeric() #是否只包含數字,包括十進制數字和其它特殊數字 True>>> name.isprintable() #是否可打印 True>>> name1.istitle() #是否為一個title True>>> l1=['mac','jack','bike'] >>> ','.join(l1) #將列表替換成字符串 'mac,jack,bike'>>> name.ljust(20,'-') #左對齊字符串,最右邊填充‘-’ 'hsggj---------------'>>> name.rjust(20,'-') #右對齊字符串,最左邊填充‘-’ '---------------hsggj'>>> name.center(20,'-') #字符串居中,兩邊填充‘-’ '-------hsggj--------'>>> name2=' hsggj \n' >>> name2.strip() #字符串兩邊去除空白 'hsggj'>>> name2.lstrip() #字符串左邊去除空白 'hsggj \n'>>> name2.rstrip() #字符串右邊去除空白 ' hsggj'>>> name = 'hsggj guo' >>> name.replace('gg','DDDDD') #對字符串進行匹配并替換 'hsDDDDDj guo'>>> name.split('s') #將字符串替換成列表,以s分割 ['h', 'ggj guo']>>> name.zfill(20) #返回一個長度為20的字符串,最左邊填充0 '00000000000hsggj guo'字符串的簡單加密:
from_str = "!@#$%^" to_str = "hjklmn" trans_table = str.maketrans(to_str,from_str) print("hsggj".translate(trans_table))!sgg@?? 5. 字典
>>> d1 = { ... 'stu1':'hsggj', ... 'stu2':'jack', ... 'stu3':'mac' ... } >>> d1.get('stu1','sss') #如果有值則返回,無值則返回sss 'hsggj'>>> d1.keys() #返回所有的key dict_keys(['stu1', 'stu3', 'stu2'])>>> d1.items() #返回所有的鍵值 dict_items([('stu1', 'hsggj'), ('stu3', 'mac'), ('stu2', 'jack')])>>> d1.values() #返回所有的值 dict_values(['hsggj', 'mac', 'jack'])>>> d1.pop('stu2') #刪除stu2 'jack'>>>print(d1.setdefault('stu6','wss')) #如果有則返回,沒有則返回wss wss#字典的增加 >>> d1['stu4'] = ['tom',25,'cat'] >>> print(d1) {'stu1': 'hsggj', 'stu4': ['tom', 25, 'cat'], 'stu3': 'mac', 'stu2': 'jack'}#字典的修改 >>> d1['stu4'][0] = 'TOM' >>> print(d1) {'stu1': 'hsggj', 'stu4': ['TOM', 25, 'cat'], 'stu3': 'mac', 'stu2': 'jack'}#字典的刪除 >>> print(d1.pop('stu5','sss')) sss >>> print(d1.pop('stu2','sss')) jack >>> print(d1) {'stu1': 'hsggj', 'stu4': ['TOM', 25, 'cat'], 'stu3': 'mac'} >>>print(d1.popitem()) #隨機刪除 ('stu1', 'hsggj')#字典中值的替換 >>> print(dict.fromkeys(d1,1)) {'stu1': 1, 'stu4': 1, 'stu3': 1} >>> print(dict.fromkeys(d1,'hsggj')) {'stu1': 'hsggj', 'stu4': 'hsggj', 'stu3': 'hsggj'}#字典的合并 >>>d2 = {'stu6':'TOM',1:333,3:888}d1.update(d2)print(d1)>>>{1: 333, 3: 888, 'stu3': 'mac', 'stu1': 'hsggj', 'stu6': 'TOM', 'stu2': 'jack'}#字典中的淺復制 (淺復制只能復制第一層,不能復制第二層,第二層的id是不一樣的,但第二層的id是一樣的; >>>n3 = dict.fromkeys(d1,1)n3['stu1'] = 2print(n3) >>>{'stu3': 1, 'stu2': 1, 'stu1': 2} 1659162384 1659162352>>>n3 = dict.fromkeys(d1,[1,2,3])n3['stu2'][2] = 9print(n3) >>>{'stu3': [1, 2, 9], 'stu2': [1, 2, 9], 'stu1': [1, 2, 9]} 2620113945224 26201139452246. 字典的循環
d1 = {'stu1':'hsggj','stu2':'jack','stu3':'mac' }for key in d1:print(key,d1[key])stu2 jack stu1 hsggj stu3 macfor k,v in d1.items():print(k,v)stu2 jack stu1 hsggj stu3 mac注:第一種效率要比第二種高,第二種在執行循環的時候要先把字典轉換成元組后再進行遍歷,文件按G來算其實效率光轉換就很慢了7. 淺復制與深復制
import copyd1 = {'name':'tom','acc':{'id':3333,'blance':1000}} d2 = d1.copy() d3 = copy.deepcopy(d1) d3['name'] = 'jerry' print(d1,d2,d3){'name': 'tom', 'acc': {'blance': 1000, 'id': 3333}} {'name': 'tom', 'acc': {'blance': 1000, 'id': 3333}} {'name': 'jerry', 'acc': {'blance': 1000, 'id': 3333}}d2['name'] = 'jack' print(d1,d2,d3){'name': 'tom', 'acc': {'blance': 1000, 'id': 3333}} {'name': 'jack', 'acc': {'blance': 1000, 'id': 3333}} {'name': 'jerry', 'acc': {'blance': 1000, 'id': 3333}}d1['acc']['blance']-=300 print(d1,d2,d3){'name': 'tom', 'acc': {'blance': 700, 'id': 3333}} {'name': 'jack', 'acc': {'blance': 700, 'id': 3333}} {'name': 'jerry', 'acc': {'blance': 1000, 'id': 3333}}d3['acc']['blance']-=100 print(d1,d2,d3){'name': 'tom', 'acc': {'blance': 700, 'id': 3333}} {'name': 'jack', 'acc': {'blance': 700, 'id': 3333}} {'name': 'jerry', 'acc': {'blance': 900, 'id': 3333}}d2['acc']['blance']-=500 print(d1,d2,d3){'name': 'tom', 'acc': {'blance': 200, 'id': 3333}} {'name': 'jack', 'acc': {'blance': 200, 'id': 3333}} {'name': 'jerry', 'acc': {'blance': 900, 'id': 3333}}#d1與d2隨著對方的blance減少而減少,而d3則減少一次就再也沒有變化過,這就是深復制與淺復制
? 7. 文件操作
f = open('a.txt') 關于open 模式:w 以寫方式打開, a 以追加模式打開 (從 EOF 開始, 必要時創建新文件) r+ 以讀寫模式打開 w+ 以讀寫模式打開 (參見 w ) a+ 以讀寫模式打開 (參見 a ) rb 以二進制讀模式打開 wb 以二進制寫模式打開 (參見 w ) ab 以二進制追加模式打開 (參見 a ) rb+ 以二進制讀寫模式打開 (參見 r+ ) wb+ 以二進制讀寫模式打開 (參見 w+ ) ab+ 以二進制讀寫模式打開 (參見 a+ )f.replace(old,new) #內容替換 f.close() #關閉文件并保存 f.flush() #緩存刷寫到硬盤上 f.read() #讀取文件所有行 f.readline() #讀取文件一行 f.readlines() #讀取文件所有內容,包含特殊字符 f.write(str) #把str寫入到文件中總結
以上是生活随笔為你收集整理的python基础:python循环、三元运算、字典、文件操作的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 为软考准备的论文!!
- 下一篇: mysql against包含英文_在M
