len 函數的基本語法格式為:
len(string)
其中 string 用於指定要進行長度統計的字符串。
例如,定義一個字符串,內容為“http://c.biancheng.net”,然後用 len() 函數計算該字符串的長度,執行代碼如下:
>>> a='http://c.biancheng.net'
>>> len(a)
22
split() 方法可以實現將一個字符串按照指定的分隔符切分成多個子串,這些子串會被保存到列表中(不包含分隔符),作為方法的返回值反饋回來。該方法的基本語法格式如下:
str.split(sep,maxsplit)
此方法中各部分參數的含義分別是:
>>> str = "C語言中文網 >>> c.biancheng.net"
>>> str
'C語言中文網 >>> c.biancheng.net'
>>> list1 = str.split() #采用默認分隔符進行分割
>>> list1
['C語言中文網', '>>>', 'c.biancheng.net']
>>> list2 = str.split('>>>') #采用多個字符進行分割
>>> list2
['C語言中文網 ', ' c.biancheng.net']
>>> list3 = str.split('.') #采用 . 號進行分割
>>> list3
['C語言中文網 >>> c', 'biancheng', 'net']
>>> list4 = str.split(' ',4) #采用空格進行分割,並規定最多只能分割成 4 個子串
>>> list4
['C語言中文網', '>>>', 'c.biancheng.net']
>>> list5 = str.split('>') #采用 > 字符進行分割
>>> list5
['C語言中文網 ', '', '', ' c.biancheng.net']
>>>
需要注意的是,在未指定 sep 參數時,split() 方法默認采用空字符進行分割,但當字符串中有連續的空格或其他空字符時,都會被視為一個分隔符對字符串進行分割,例如:
>>> str = "C語言中文網 >>> c.biancheng.net" #包含 3 個連續的空格
>>> list6 = str.split()
>>> list6
['C語言中文網', '>>>', 'c.biancheng.net']
>>>
join() 方法也是非常重要的字符串方法,它是 split() 方法的逆方法,用來將列表(或元組)中包含的多個字符串連接成一個字符串。
join() 方法的語法格式如下:
newstr = str.join(iterable)
此方法中各參數的含義如下:
【例 1】將列表中的字符串合並成一個字符串。
>>> list = ['c','biancheng','net']
>>> '.'.join(list)
'c.biancheng.net'
【例 2】將元組中的字符串合並成一個字符串。
>>> dir = '','usr','bin','env'
>>> type(dir)
<class 'tuple'>
>>> '/'.join(dir)
'/usr/bin/env'
count 方法用於檢索指定字符串在另一字符串中出現的次數,如果檢索的字符串不存在,則返回 0,否則返回出現的次數。
count 方法的語法格式如下:
str.count(sub[,start[,end]])
此方法中,各參數的具體含義如下:
【例 1】檢索字符串“c.biancheng.net”中“.”出現的次數。
>>> str = "c.biancheng.net"
>>> str.count('.')
2
【例 2】
>>> str = "c.biancheng.net"
>>> str.count('.',1)
2
>>> str.count('.',2)
1
前面講過,字符串中各字符對應的檢索值,從 0 開始,因此,本例中檢索值 1 對應的是第 2 個字符‘.’,從輸出結果可以分析出,從指定索引位置開始檢索,其中也包含此索引位置。
【例 3】
>>> str = "c.biancheng.net"
>>> str.count('.',2,-3)
1
>>> str.count('.',2,-4)
0
find() 方法用於檢索字符串中是否包含目標字符串,如果包含,則返回第一次出現該字符串的索引;反之,則返回 -1。
find() 方法的語法格式如下:
str.find(sub[,start[,end]])
此格式中各參數的含義如下:
【例 1】用 find() 方法檢索 “c.biancheng.net” 中首次出現 “.” 的位置索引。
>>> str = "c.biancheng.net"
>>> str.find('.')
1
【例 2】手動指定起始索引的位置。
>>> str = "c.biancheng.net"
>>> str.find('.',2)
11
【例 3】手動指定起始索引和結束索引的位置。
>>> str = "c.biancheng.net"
>>> str.find('.',2,-4)
-1
位於索引(2,-4)之間的字符串為“biancheng”,由於其不包含“.”,因此 find() 方法的返回值為 -1。
同 find() 方法類似,index() 方法也可以用於檢索是否包含指定的字符串,不同之處在於,當指定的字符串不存在時,index() 方法會拋出異常。
index() 方法的語法格式如下:
str.index(sub[,start[,end]])
此格式中各參數的含義分別是:
【例 1】用 index() 方法檢索“c.biancheng.net”中首次出現“.”的位置索引。
>>> str = "c.biancheng.net"
>>> str.index('.')
1
【例 2】當檢索失敗時,index()會拋出異常。
>>> str = "c.biancheng.net"
>>> str.index('z')
Traceback (most recent call last):
File "<pyshell#49>", line 1, in <module>
str.index('z')
ValueError: substring not found
startswith() 方法用於檢索字符串是否以指定字符串開頭,如果是返回 True;反之返回 False。此方法的語法格式如下:
str.startswith(sub[,start[,end]])
此格式中各個參數的具體含義如下:
【例 1】判斷“c.biancheng.net”是否以“c”子串開頭。
>>> str = "c.biancheng.net"
>>> str.startswith("c")
True
【例 2】
>>> str = "c.biancheng.net"
>>> str.startswith("http")
False
【例 3】從指定位置開始檢索。
>>> str = "c.biancheng.net"
>>> str.startswith("b",2)
True
endswith() 方法用於檢索字符串是否以指定字符串結尾,如果是則返回 True;反之則返回 False。該方法的語法格式如下:
str.endswith(sub[,start[,end]])
此格式中各參數的含義如下:
【例 4】檢索“c.biancheng.net”是否以“net”結束。
>>> str = "c.biancheng.net"
>>> str.endswith("net")
True
title() 方法用於將字符串中每個單詞的首字母轉為大寫,其他字母全部轉為小寫,轉換完成後,此方法會返回轉換得到的字符串。如果字符串中沒有需要被轉換的字符,此方法會將字符串原封不動地返回。
title() 方法的語法格式如下:
str.title()
其中,str 表示要進行轉換的字符串。
【例 1】
>>> str = "c.biancheng.net"
>>> str.title()
'C.Biancheng.Net'
>>> str = "I LIKE C"
>>> str.title()
'I Like C'
lower() 方法用於將字符串中的所有大寫字母轉換為小寫字母,轉換完成後,該方法會返回新得到的字符串。如果字符串中原本就都是小寫字母,則該方法會返回原字符串。
lower() 方法的語法格式如下:
str.lower()
其中,str 表示要進行轉換的字符串。
【例 2】
>>> str = "I LIKE C"
>>> str.lower()
'i like c'
upper() 的功能和 lower() 方法恰好相反,它用於將字符串中的所有小寫字母轉換為大寫字母,和以上兩種方法的返回方式相同,即如果轉換成功,則返回新字符串;反之,則返回原字符串
upper() 方法的語法格式如下:
str.upper()
其中,str 表示要進行轉換的字符串。
【例 3】
>>> str = "i like C"
>>> str.upper()
'I LIKE C'
strip() 方法用於刪除字符串左右兩個的空格和特殊字符,該方法的語法格式為:
str.strip([chars])
其中,str 表示原字符串,[chars] 用來指定要刪除的字符,可以同時指定多個,如果不手動指定,則默認會刪除空格以及制表符、回車符、換行符等特殊字符。
【例 1】
>>> str = " c.biancheng.net \t\n\r"
>>> str.strip()
'c.biancheng.net'
>>> str.strip(" ,\r")
'c.biancheng.net \t\n'
>>> str
' c.biancheng.net \t\n\r'
分析運行結果不難看出,通過 strip() 確實能夠刪除字符串左右兩側的空格和特殊字符,但並沒有真正改變字符串本身。
replace() 方法用另一個指定的短語替換一個指定的短語。
string.replace(oldvalue, newvalue, count)
此格式中各參數的含義如下:
實例:替換所有出現的單詞 “one”:
txt = "one one was a race horse, two two was one too."
x = txt.replace("one", "three")
print(x)
實例:替換前兩次出現的單詞 “one”:
txt = "one one was a race horse, two two was one too."
x = txt.replace("one", "three", 2)
print(x)
注意:可以用replace(’ ‘,’')來去掉字符串裡的所有空格
前面章節介紹了如何使用 % 操作符對各種類型的數據進行格式化輸出,這是早期 Python 提供的方法。自 Python 2.6 版本開始,字符串類型(str)提供了 format() 方法對字符串進行格式化,本節就來學習此方法。
format() 方法的語法格式如下:
str.format(args)
此方法中,str 用於指定字符串的顯示樣式;args 用於指定要進行格式轉換的項,如果有多項,之間有逗號進行分割。
str="網站名稱:{}網址:{}"
print(str.format("C語言中文網","c.biancheng.net"))
https://m.php.cn/article/471822.html
>>> a = reversed(range(10)) # 傳入range對象
>>> a # 類型變成迭代器
<range_iterator object at 0x035634E8>
>>> list(a)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> a = ['a','b','d','c','B','A']
>>> a
['a', 'b', 'd', 'c', 'B', 'A']
>>> sorted(a) # 默認按字符ascii碼排序
['A', 'B', 'a', 'b', 'c', 'd']
>>> sorted(a,key = str.lower) # 轉換成小寫後再排序,'a'和'A'值一樣,'b'和'B'值一樣
['a', 'A', 'b', 'B', 'c', 'd']
>>> x = [1,2,3] #長度3
>>> y = [4,5,6,7,8] #長度5
>>> list(zip(x,y)) # 取最小長度3
[(1, 4), (2, 5), (3, 6)]
返回對象或者當前作用域內的屬性列表
dir(obj)
obj 表示要查看的對象。obj 可以不寫,此時 dir() 會列出當前范圍內的變量、方法和定義的類型。
>>> import math
>>> math
<module 'math' (built-in)>
>>> dir(math)
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']
用來查看某個函數或者模塊的幫助文檔,它的用法為:
help(obj)
obj 表示要查看的對象。obj 可以不寫,此時 help() 會進入幫助子程序。
>>> a = 'some text'
>>> id(a)
69228568
>>> type(1) # 返回對象的類型
<class 'int'>
>>> len('abcd') # 字符串
>>> len(bytes('abcd','utf-8')) # 字節數組
>>> len((1,2,3,4)) # 元組
>>> len([1,2,3,4]) # 列表
>>> len(range(1,5)) # range對象
>>> len({
'a':1,'b':2,'c':3,'d':4}) # 字典
>>> len({
'a','b','c','d'}) # 集合
>>> len(frozenset('abcd')) #不可變集合
Python 中的 if else 語句可以細分為三種形式,分別是 if 語句、if else 語句和 if elif else 語句,它們的語法和執行流程如表1所示。
#【實例1】使用第一種選擇結構判斷用戶是否符合條件:
age = int( input("請輸入你的年齡:") )
if age < 18 :
print("你還未成年,建議在家人陪同下使用該軟件!")
print("如果你已經得到了家長的同意,請忽略以上提示。")
#該語句不屬於if的代碼塊
print("軟件正在使用中...")
#【實例2】改進上面的代碼,年齡不符合時退出程序:
import sys
age = int( input("請輸入你的年齡:") )
if age < 18 :
print("警告:你還未成年,不能使用該軟件!")
print("未成年人應該好好學習,讀個好大學,報效祖國。")
sys.exit()
else:
print("你已經成年,可以使用該軟件。")
print("時間寶貴,請不要在該軟件上浪費太多時間。")
print("軟件正在使用中...")
#【實例3】判斷一個人的身材是否合理:
height = float(input("輸入身高(米):"))
weight = float(input("輸入體重(千克):"))
bmi = weight / (height * height) #計算BMI指數
if bmi<18.5:
print("BMI指數為:"+str(bmi))
print("體重過輕")
elif bmi>=18.5 and bmi<24.9:
print("BMI指數為:"+str(bmi))
print("正常范圍,注意保持")
elif bmi>=24.9 and bmi<29.9:
print("BMI指數為:"+str(bmi))
print("體重過重")
else:
print("BMI指數為:"+str(bmi))
print("肥胖")
會從上到下逐個判斷表達式是否成立,一旦遇到某個成立的表達式,就執行後面緊跟的語句塊;
剩下的代碼就不再執行了,不管後面的表達式是否成立。
布爾類型(bool)只有兩個值,分別是 True 和 False,Python 會把 True 當做“真”,把 False 當做“假”。
對於數字,Python 會把 0 和 0.0 當做“假”,把其它值當做“真”。
對於其它類型,當對象為空或者為 None 時,Python 會把它們當做“假”,其它情況當做真
下面的表達式會把它們當做“假”:
"" #空字符串
[ ] #空列表
( ) #空元組
{
} #空字典
None #空值
b = False
if b:
print('b是True')
else:
print('b是False')
n = 0
if n:
print('n不是零值')
else:
print('n是零值')
s = ""
if s:
print('s不是空字符串')
else:
print('s是空字符串')
l = []
if l:
print('l不是空列表')
else:
print('l是空列表')
d = {
}
if d:
print('d不是空字典')
else:
print('d是空字典')
if None:
print('不為空')
else:
print('為空')
Python 是以縮進來標記代碼塊的,代碼塊一定要有縮進,沒有縮進的不是代碼塊。另外,同一個代碼塊的縮進量要相同,縮進量不同的不屬於同一個代碼塊。
通過縮進,在相互嵌套時,查看邏輯關系。
proof = int(input("輸入駕駛員每 100ml 血液酒精的含量:"))
if proof < 20:
print("駕駛員不構成酒駕")
else:
if proof < 80:
print("駕駛員已構成酒駕")
else:
print("駕駛員已構成醉駕")
pass 是 Python 中的關鍵字,用來讓解釋器跳過此處,什麼都不做。
age = int( input("請輸入你的年齡:") )
if age < 12 :
print("嬰幼兒")
elif age >= 12 and age < 18:
print("青少年")
elif age >= 18 and age < 30:
print("成年人")
elif age >= 30 and age < 50:
pass
else:
print("老年人")
assert 語句,又稱斷言語句,可以看做是功能縮小版的 if 語句,它用於判斷某個表達式的值,如果值為真,則程序可以繼續往下執行;反之,Python 解釋器會報 AssertionError 錯誤。
mathmark = int(input())
#斷言數學考試分數是否位於正常范圍內
assert 0 <= mathmark <= 100
#只有當 mathmark 位於 [0,100]范圍內,程序才會繼續執行
print("數學考試分數為:",mathmark)
while 循環和 if 條件分支語句類似,即在條件(表達式)為真的情況下,會執行相應的代碼塊。不同之處在於,只要條件為真,while 就會一直重復執行那段代碼塊。
# 循環的初始化條件
num = 1
# 當 num 小於100時,會一直執行循環體
while num < 100 :
print("num=", num)
# 迭代語句
num += 1
print("循環結束!")
add = "http://c.biancheng.net/python/"
#for循環,遍歷 add 字符串
for ch in add:
print(ch,end="")
##for 循環進行數值循環
print("計算 1+2+...+100 的結果為:")
#保存累加結果的變量
result = 0
#逐個獲取從 1 到 100 這些值,並做累加操作
for i in range(101):
result += i
print(result)
##for循環遍歷列表和元組
my_list = [1,2,3,4,5]
for ele in my_list:
print('ele =', ele)
##for 循環遍歷字典
my_dic = {
'python教程':"http://c.biancheng.net/python/",\
'shell教程':"http://c.biancheng.net/shell/",\
'java教程':"http://c.biancheng.net/java/"}
for ele in my_dic:
print('ele =', ele)
break 語句可以立即終止當前循環的執行,跳出當前所在的循環結構。無論是 while 循環還是 for 循環,只要執行 break 語句,就會直接結束當前正在執行的循環體
add = "http://c.biancheng.net/python/,http://c.biancheng.net/shell/"
# 一個簡單的for循環
for i in add:
if i == ',' :
#終止循環
break
print(i,end="")
print("\n執行循環體外的代碼")
和 break 語句相比,continue 語句的作用則沒有那麼強大,它只會終止執行本次循環中剩下的代碼,直接從下一次循環繼續執行。
add = "http://c.biancheng.net/python/,http://c.biancheng.net/shell/"
# 一個簡單的for循環
for i in add:
if i == ',' :
# 忽略本次循環的剩下語句
print('\n')
continue
print(i,end="")
Last blog post Twenty thousan
Jane Medium : This paper gives