python基礎之流程控制、數字和字符串處理
流程控制
條件判斷
if單分支:當一個“條件”成立時執行相應的操作。
語法結構:
if 條件: command
流程圖:
示例:如果3大於2,那麽輸出字符串"very good"
#!/usr/bin/env python # -*- coding: utf-8 -*- if 3 > 2: print("very good")
if雙分支:當“條件成立”時候執行一個操作,或者“條件不成立”執行另外一個操作操作。
語法結構:
if 條件: command1 else: command2
流程圖:
示例:輸入一個數,如果輸入的是5,那麽輸出you are right,輸入其他數,輸出you are wrong
#!/usr/bin/env python # -*- coding: utf-8 -*- num=input(‘please input a number:‘) if num == 5: print(‘you are right‘) else: print(‘you are wrong‘)
if多分支:相當於if語句嵌套,針對多個條件執行不同操作。
語法結構:
if 條件: command1 elif 條件: command2 ... #可存在多個elif判斷 command... else: commandn
流程圖:
示例:輸入一個數字,如果在0-9範圍內,將該數字轉成二進制輸出,如果在10到19範圍內,將該數字轉成8進制輸出,在20或者更大,那麽轉換成16進制輸出
#!/usr/bin/env python # -*- coding: utf-8 -*- num=int(input(‘please input a number:‘)) #input輸入為str字符串格式用int轉化成整數 if num in range(10): #range()方法是一個範圍,for循環詳細說明 print(bin(num)) #bin()方法,轉化為二進制 elif num in range(10,20): print(oct(num)) #oct()方法,轉化為八進制 else: print(hex(num)) #hex()方法,轉化為十六進制
循環
for循環:根據標量的不同取值,重復執行一組命令操作。
語法結構:
for 變量 in 集合: command
流程圖:
示例1:依次輸出數字0到10
for i in range(11): print(i)
range(11)表示一個範圍,從頭到尾依次是0,1,2,3,4,5,6,7,8,9,10,共十一個數字,這個範圍顧頭不顧尾,即不包括最大的那個數
示例2:依次輸出數字5到10
for i in range(5,11): print(i)
range(5,11),表示開頭為5,結束為11的一個範圍,包括5但不包括11
示例3:0到10數字範圍,每隔一個數輸出一個數
for i in range(0,11,2): print(i)
輸出結果為:0,2,4,6,8,10,range()方法的第三個數表示步數,也就是間隔的值
補充:for+else
else內的指令只在for循環結束後執行,並且該循環沒有被break或continue打斷
for i in range(0,11,2): print(i) else: print(‘ok‘) 輸出結果: 0 2 4 6 8 10 ok
條件循環
while條件循環:重復測試指令的條件,只要條件為真則反復執行對應的命令操作,直到條件為假。如果使用true
作為循環條件能夠產生無限循環。
語法結構:
while 條件 : command
流程圖:
示例:打印0到100的所有的奇數
i=1 while i <=100 : print(i) i = i + 2
補充:while+else
表示while在正常循環結束後才能執行else,即循環過程中沒有被break和continue打斷,完全循環後才能執行else的指令
示例:
i=1 while i <=5 : print(i) i = i + 2 else: print(‘ok‘) 輸出結果: 1 3 5 ok
數字
數字類型包括:整型和浮點型(即整數和小數),布爾值,復數
數字特性:
1、只能存放一個值,不論這個數字有多長
2、一經定義,不可更改,因為數字是不可變的(如果不理解,看過後邊的數組tuple後就理解了)
3、通過變量直接訪問
整型
整型可以用十進制、二進制、八進制和十六進制表示,如十進制的10、二進制的1010、八進制的12和十六進制的a都表示是整數10
print(10) print(bin(10)) #10的十進制轉換二進制 print(oct(10)) #10的十進制轉換八進制 print(hex(10)) #10的十進制轉換十六進制,0-9和abcdef 輸出為: 10 0b1010 #0b表示二進制 0o12 #0o表示八進制 0xa #0x表示16進制
整型在python2裏是有長度限制的,分為整型和長整型,在python3裏沒有長度限制,所以數字再長都可以叫做整型,當然可以通過長整型方法將整型編程長整型,長整型的數字最後有一個L標識。
其他常用方法(簡略):
int() 轉化為整型
abs() 求絕對值
float() 轉換層浮點型
浮點型
即小數,如1.2,0.3等
浮點數科學計數法:
print(1.3e-3) #1.3的10的-3次方、e3表示10的3次方
布爾值
True用1表示
False用0表示
字符串
字符串
字符串是一個有序的字符的集合,用於存儲和表示基本的文件信息
字符串特性:
1、只能存放一個值
2、不可變
3、按照從左到右的順序定義字符集和,索引從0開始有序訪問
定義方法:字符串定義,四種引號都是定義字符串
a=‘xyz‘ b="xyz" c=‘‘‘xyz‘‘‘ d="""xyz"""
字符串處理
移除空白:把字符串的前後指定的字符位置移除,中間的無法移除
s1=‘abc ‘ s2=‘**********abc*******‘ s3=‘**********a**bc*******‘ print(s1.strip(‘ ‘)) print(s2.strip(‘*‘)) print(s3.strip(‘*‘)) 輸出結果: abc abc a**bc
分割:指定字符為分隔符,將字符串轉換成list
s1=‘abc|def|ghi‘ print(s1.split(‘|‘)) 輸出結果: [‘abc‘, ‘def‘, ‘ghi‘]
長度:統計字符串長度,包括空格和符號
s1=‘abc ‘ s2=‘**********abc*******‘ s3=‘**********a**bc*******‘ print(len(s1)) print(len(s2)) print(len(s3)) 輸出結果: 16 20 22
索引:表示字符的位置,從0開始計數
s1=‘abc ‘ s2=‘**********abc*******‘ s3=‘**********a**bc*******‘ print(s1[2]) #0位置為a,1位置為b,2位置為c
print(s2[11]) print(s3[-8]) #-8位置為從後開始數第8個字符,從後計數的第一個字符位置為-1位置 輸出結果: c b c
切片:根據索引位置匹配需要的字符串片段
s1=‘abcdefghi‘ print(s1[2:5]) #2,3,4位置 print(s1[2:8:2]) #匹配2,4,6位置,第二個2表示步數,每隔一個匹配一個 print(s1[-5:-3]) #倒序-5,-4位置 輸出結果: cde ceg ef
其他常用方法:
首字母大寫
s1=‘abc def abc‘ print(s1.capitalize())
輸出結果:
Abc def abc
統計某個字符的數量,空格也算字符
s1=‘abc def abc‘ print(s1.count(‘a‘)) print(s1.count(‘a‘,0,4)) #表示0-4位置,不包括4位置 輸出結果: 2 #整個字符串有兩個a 1 #0,1,2,3位置有一個a
檢驗開頭和結尾字符串
s1=‘abc def abc‘ print(s1.endswith(‘c‘)) print(s1.startswith(‘a‘)) 輸出結果: True True
查找字符串內是否包含該字符
s1=‘abc def abc‘ print(s1.find(‘b‘)) print(s1.find(‘d‘)) 輸出結果: 1 #輸出的是匹配的第一個字符的索引位置 4
格式化字符串
msg1=‘Name:{},age:{},sex:{}‘ print(msg1) print(msg1.format(‘egon‘,18,‘male‘)) msg2=‘Name:{0},age:{1},sex:{0}‘ print(msg2.format(‘aaaaaaaaaaaaaaaaa‘,‘bbbbbbbbbbbbbb‘)) msg3=‘Name:{x},age:{y},sex:{z}‘ print(msg3.format(y=18,x=‘egon‘,z=‘male‘)) 輸出結果: Name:{},age:{},sex:{} Name:egon,age:18,sex:male Name:aaaaaaaaaaaaaaaaa,age:bbbbbbbbbbbbbb,sex:aaaaaaaaaaaaaaaaa Name:egon,age:18,sex:male
索引(查看索引位置)
s1=‘abc def abc‘ print(s1.index(‘a‘)) #匹配第一個a的索引位置 print(s1[s1.index(‘e‘)]) #調用用索引位置
校驗字符串是否為純數字
s1=‘123‘ print(s1.isdigit()) 輸出結果: True
替換
msg=‘hello alex‘ #賦值時候實際上是msg=str(‘hello alex‘),replace()方法是str所賦予的,即str.replace() print(msg.replace(‘x‘,‘X‘)) print(msg.replace(‘alex‘,‘bob‘)) print(msg.replace(‘l‘,‘A‘)) print(msg.replace(‘l‘,‘A‘,1)) print(msg.replace(‘l‘,‘A‘,2)) #第二個數字為替換的次數 輸出結果: hello aleX hello bob heAAo aAex heAlo alex heAAo alex
大寫轉換
x=‘hello‘ print(x.upper()) 輸出結果: HELLO
檢驗是否是全大寫
x=‘HELLO‘ print(x.isupper()) 輸出結果: True
小寫轉換和檢驗
x=‘HELLO‘ print(x.lower()) print(x.islower()) 輸出結果: hello False
校驗是不是空格
x=‘ ‘ #空格不等於空 print(x.isspace()) 輸出結果: True
開頭大寫
x=‘hello‘ print(x.title()) 輸出結果: Hello
校驗開頭是否為大寫
msg=‘Hello‘ print(msg.istitle()) 輸出結果: True
左對齊和右對齊:數字表示對齊後的長度,後邊的星號為長度不夠用星號補齊
x=‘abc‘ print(x.ljust(10,‘*‘)) print(x.rjust(10,‘*‘)) 輸出結果: abc******* *******abc
大小寫交換
x=‘Ab‘ print(x.swapcase()) 輸出結果: aB
python基礎之流程控制、數字和字符串處理