思維導圖
python的循環結構
順序結構
分支結構
- if:
if 表達式:
語句
- if…else…
if 表達式:
語句
else:
語句
- if…elif…else…
if 表達式:
語句
elif 表達式:
語句
else:
語句
注意:在python裏面不支持switch語句,如果想實現switch的效果,第一種方法就是使用if...elif...elif...else...;
python中實現三目運算符:
C: maxNum = a>b? a:b
Python: maxNum= a if a>b else b
循環結構
for, while, do…while…
for循環
- range(m,n,x):從m起始到n-1結束(不包含n),x代表步長;
for item in range(m.n,x):
循環的語句
for item in 可迭代的類型(eg:字符串.....):
循環的語句
- 兩個關鍵字:
- break:跳出循環,不再執行循環;
- continue:跳出本次循環,繼續執行下一個循環;
while循環
while
while 表達式(或者True,False):
循環的語句
while … else …..
while 表達式:
循環語句
In [5]: while trycount<3:
...: print "login"
...: trycount+=1
...: else:
...: print "bigger than 3"
...:
pass
只是佔一個語句的位置,並無任何操作;
程序 = 算法 + 數據結構
C:數組,結構體,………..
Python: str,list,tuple,set,dict……..
字符串
字符串的定義
- ” “
- ’ ‘
- “”” “”“
轉義字符:\n \r \t \’ \”
字符串的特性
索引:檢索引用,通過字符串的下標,拿出字符串的某個字符;(注意:下標從0開始)
a[0] ## 拿出字符串第一個字符
a[-1] ##拿出字符串最後一個字符拼接:+
"hello" + "world"
a[0]+a[1]
- 切片:切出字符串指定的部分
a[m:n:x] #從m索引開始切,到n-1結束,間隔爲x
a[:n] #從開頭切到n-1
a[m:] #從m切到字符串結束
a[::] # 切出與a相同的字符串
a[::-1] # 倒序輸出字符串a
字符串的方法
字符串填充
//輸出字符串寬度爲width,S顯示在中間,其他部分由fillchar填充
- S.center(width[, fillchar]) -> string
//S顯示在left(左邊)
- S.ljust(width[, fillchar])
//S顯示在right(右邊)
- S.rjust(width[, fillchar])
刪除前後空格
//刪除S中首位指定的chars,沒有參數時,默認爲空格;
- S.strip([chars]) -> string
- S.lstrip([chars])
- S.rstrip([chars])
字符串變形計
//大小寫互換
- s.swapcase
- s.title
- s.upper
- s.lower
- s.format
字符串分割
s.split() //默認情況下以空格爲分隔符
字符串判定(是否小寫/大寫/數字…..)
- str.isalnum() //判斷是否都是字母或數字
- str.isalpha() //判斷是否都是字母
- str.isdigit() //判斷是否都是數字
- str.islower() //判斷是否都是小寫
- str.isspace() //判斷是否都是英文空格
- str.istitle() //判斷是不是都是標題(有大小寫)
- str.isupper() //判斷是不是都爲大寫字母
字符串的查找
s.count
s.find
s.index
s.rindex
s.rfind
替換
s.replace()
str.join(seq)
- 以str作爲分隔符,將序列seq中的所有元素合併爲
一個新的字符串。
例1
句子反轉
#!/usr/bin/env python
inputstr=raw_input()
inputstr=inputstr.split(" ")
a=inputstr[::-1]
print " ".join(a)
運行結果:
例2
處理字符串,最終分別打印數字,大寫字母和小寫字母;
#!/usr/bin/env python
#coding:utf-8
str = "helo12XyS6E12zF"
num=""
daxie=""
xiaoxie=""
for i in str:
if i.isdigit():
num=num+i
elif i.isupper():
daxie+=i
elif i.islower():
xiaoxie+=i
print "數字爲:", num
print "大寫字母爲:", daxie
print "小寫字母爲:", xiaoxie
運行結果:
例3
用戶輸入一個數字,判斷是否爲質數
#!/usr/bin/env python
#coding:utf-8
from math import sqrt
def is_prime(n):
if n == 1:
return False
for i in range(2, int(sqrt(n))+1):
if n % i == 0:
print '數字 {} 不是質數!'.format(n)
return False
print '數字 {} 是質數!'.format(n)
return True
is_prime(input('輸入要查看的數:'))
程序運行結果: