字串索引
str = '我是一名學生' print(str[0]) #輸出“我” print(str[-6]) #輸出“我”

字串切片:把資料物件的一部分拿出來
str = '我是一名學生' print(str[2:4]) #輸出“一名” print(str[-4:-2]) #輸出“一名”

#獲取字串長度:len() str = '我是一名學生' length = len(str) print(length)

函式
def interview(): #def是關鍵字 表示定義一個函式 print("把求職者帶到3號會議室") print("請求職者 完成答卷") print("讓測驗經理來面試 求職者") print("讓技術總監面試 求職者")
-
函式引數:
def interview(interviewee): #def是關鍵字 表示定義一個函式 print("下一位求職者是" + interviewee) print("把求職者帶到3號會議室") print("請求職者 完成答卷") print("讓測驗經理來面試 求職者") print("讓技術總監面試 求職者") interview('小明')

注:python中TAB和空格不能混用,否則會出錯
串列:串列的內容可以改變
-
定義:
nameList = [] #空串列 a = [1, 2, 3.14, 'hello', [7,8,9] ] #非空串列
元組:元組的內容不可以改變
-
定義:
nameList = () #空元組 a = (1, 2, 3.14, 'hello') #非空元組
如果元組中只有一個元素,必須要在后面加上逗號,(a = (1, ))
定義元組還可以去掉圓括號,a = 1, 2, 3.14, 'hello'
-
判斷元素是否在元組:
list1 = [1,2,3,4, 'hello'] tuple1 = (1,2,3,4, 'hello') ? if 'hello' in list1: print('hello 在串列中存在') ? if 'boy' not in tuple1: print('boy 在元組中不存在')
判斷陳述句
def registerUser(): phone = input('請輸入你的手機號碼(不超過11個字符):') if len(phone) > 11: print('輸入錯誤!手機號碼超過了11個字符') # 還需要進一步判斷 輸入的是否全數字 elif not phone.isdigit() : print('輸入錯誤!手機號碼必須全是數字') # 判斷是否以數字1 開頭 elif not phone.startswith('1') : # startswith 是字串物件的方法 print('輸入錯誤!手機號碼必須以數字1開頭') else: print('手機號碼輸入正確') print('函式結束')
isdigit() 方法檢測字串是否只由數字組成,只對 0 和 正數有效,
startsWith() 方法用于檢測字串是否以指定的子字串開始,
輸入
def temperature(): tem = int(input("請輸入今天的氣溫:")) ap = int(input("請輸入今天的氣壓:")) if tem > 30 or tem < -8 or ap > 300 or tem < 20: print("不舒適") elif tem >25 and tem <= 30 and ap > 200 and ap <= 300: print("比較舒適") else: print("無法判斷") temperature()
物件的方法
# var1 是一個串列物件 var1 = [1,2,3,4,5,6,7] # 串列物件都有 reverse方法,該方法將串列元素倒過來 var1.reverse() print(var1)

字串的方法
-
count:
# 呼叫字串的count 方法,count 方法可以回傳字串物件包含了多少個引數指定的字串 # 表示該字串包含了兩個 '我們' '我們今天不去上學,我們去踢足球'.count('我們')
-
find:在字串中查找引數子字串,并回傳該引數字串在其中第一個出現的位置索引
str1 = '我們今天不去上學,我們去踢足球' # 回傳 0 , str1字串中有兩個 '我們' # find回傳的是第一個 '我們' 的索引 0 pos1 = str1.find('我們')
-
split、splitlines:split經常用來從字串中截取出我們想要的資訊,
#用 | 作為源字串str1的分割符 str1 = '小張:79 | 小李:88 | 小趙:83' pos1 = str1.split('|') print(pos1)

#splitlines把字串按換行符進行切割 salary = ''' 小王 10000元 小李 20000元 小徐 15000元 ''' ? print(salary.splitlines())

-
join:將串列中的字串元素以某字串為連接符,連接為一個字串
'|'.join([ '小張:79 ', ' 小李:88 ', ' 小趙:83' ])

-
strip 、 lstrip 、 rstrip:
' 小 李:88 '.strip() #strip方法可以將 字串前面和后面的空格洗掉,但是不會洗掉字串中間的空格 ' 小 李:88 '.lstrip() #將字串前面(左邊)的空格洗掉,但是不會洗掉字串中間和右邊的空格 ' 小 李:88 '.rstrip() #將字串后面(右邊)的空格洗掉,但是不會洗掉字串中間和左邊的空格
-
replace:替換字串里面所有指定的子字串為另一個字串
str1 = '我們今天不去上學,我們去踢足球' str1 = str1.replace('我們', '他們')
-
startswith 和 endswith
#startswith方法檢查字串是否以引數指定的字串開頭 #endswith方法檢查字串是否以指定的字串結尾 str1 = '我們今天不去上學,我們去踢足球' str1.startswith('我們') # 回傳 True str1.endswith('我們') # 回傳 False def telephone(): tele = input("請輸入手機號碼:") if not tele.isdigit() or len(tele) != 11 or not tele.startswith('1'): print("手機號碼輸入格式錯誤") else: print("您的手機號碼為:"+tele) telephone()
串列的方法
-
append:在串列后面添加一個元素
a = [1, 2, 3.14, 'hello'] ? # append 之后,a就變成了 [1, 2, 3.14, 'hello', '你好'] a.append('你好') print(a) ? ? # 繼續append ,a就變成了 [1, 2, 3.14, 'hello', '你好', [7,8]] a.append([7,8]) print(a)

append 方法的回傳值是None
-
insert:在指定位置插入一個元素
a = [1, 2, 3.14, 'python3.vip'] ? # 插入到索引0的位置,也是插到第1個元素的位置上 # a串列內容就變成了 ['你好', 1, 2, 3.14, 'python3.vip'] a.insert(0, '你好') print(a)

insert方法的回傳值也是None
-
pop:從串列取出并洗掉一個元素
a = [1, 2, 3.14, 'python3.vip'] ? # 取出索引為3 的元素,也就是第4個元素 poped = a.pop(3) ? # 取出后,a串列物件內容就變成了 [ 1, 2, 3.14] print(a)

pop 方法的回傳值是提取出來的元素
-
remove:洗掉串列元素,引數是要洗掉元素的值,最多只會洗掉1個元素
var1 = ['a','b','c','a'] var1.remove('a') print(var1)

-
reverse:將串列元素倒過來
var1 = [1,2,3,4,5,6,7] var1.reverse() print(var1)
-
index:回傳引數物件在串列中的位置,也就是索引
var1 = [1,2,3,4,5,6,7] idx = var1.index(5) print(idx)
-
sort:對串列進行排序
students = ['Alex','Tom','Jerry','Michale','Alex'] students.sort() print(f'after sort: {students}') ? numbers = [7,3,8,2,9] numbers.sort() print(f'after sort: {numbers}')

字串格式化
-
printf風格:
salary = input('請輸入薪資:') ? # 計算出繳稅額,存入變數tax tax = int(salary) *25/100 ? # 計算出稅后工資,存入變數aftertax aftertax = int(salary) *75/100 ? print('稅前薪資:%s元,繳稅:%s元,稅后薪資:%s元' %(salary,tax,aftertax))
-
f-string風格:
salary = input('請輸入薪資:') ? # 計算出繳稅額,存入變數tax tax = int(salary) *25/100 ? # 計算出稅后工資,存入變數aftertax aftertax = int(salary) *75/100 ? print(f'稅前薪資是:{salary}元, 繳稅:{tax}元, 稅后薪資是:{aftertax}元')
指定寬度:為了輸出對齊,我們需要指定填入的字串的寬度,方法是,在括號里面的變數后面加上——:寬度值
例如:salary = 10000 print(f'{salary:10}')
-
小練習:

def demo(): name = input("請輸入你的名字:") age = int(input("請輸入你的年齡:")) print(f'你的名字是:{name},你的年齡是:{age}') demo()
回圈
-
while回圈:
command = input("請輸入命令:") while command != 'exit': print(f'輸入的命令是{command}') command = input("請輸入命令")
-
for回圈:
studentAges = ['小王:17', '小趙:16', '小李:17', '小孫:16', '小徐:18'] ? for student in studentAges: print(student)
回圈n次:使用for 回圈 和 一個內置型別 range:
# range里面的引數100 指定回圈100次 # 其中 n 依次為 0,1,2,3,4... 直到 99 # range里面可以放入兩個引數,兩個引數表示起止范圍, # range里面可以放入3個引數,第3個引數表示步長 for n in range(100): print(n) print('python,你好')
-
break和return的區別:
-
return 只能用在函式里面, 表示 從函式中回傳,
-
break只是跳出回圈, 如果回圈后面還有代碼,會進行執行,
-
return 會從函式里面立即回傳, 函式體內的后續任何代碼都不執行了,
-
-
break和continue的區別:
-
continue只是當前這次回圈結束,就是這次回圈 continue 后面的代碼不執行了, 后續的回圈還要繼續進行,
-
break是結束整個回圈
-
-
串列推導式:把一個串列里面的每個元素, 經過相同的處理,生成另一個串列,
#一個串列1,里面都是數字,我們需要生成一個新的串列2,依次存放串列1中每個元素的平方 list1 = [1,2,3,4,5,6] list2 = [num**2 for num in list1] print(list2)
-
嵌套回圈:
list1 = ['關羽','張飛','趙云','馬超','黃忠'] list2 = ['典韋','許褚','張遼','夏侯惇','夏侯淵'] ? for member1 in list1: for member2 in list2: print(f'{member1} 大戰 {member2}')
檔案操作
-
寫檔案:
f = open('test_1.txt','w',encoding='utf8') f.write('Python檔案操作') f.close()
-
讀檔案:
f = open('test_1.txt','r',encoding='utf8') content = f.read() f.close() print(content)
read()有引數,代表讀取檔案中的幾個字符,默認為全部讀取,
讀取文本檔案內容的時候,通常還會使用readlines方法,該方法會回傳一個串列, 串列中的每個元素依次對應文本檔案中每行內容,
f = open('tmp.txt') linelist = f.readlines() f.close() for line in linelist: print(line)
字典
-
定義:字典物件定義用花括號 {} , 字典里面的 每個元素之間用 逗號隔開,
每個元素都是一個鍵值對,鍵和值之間用冒號隔開,
#鍵必須是可進行哈希值計算的物件,通常是數字或者字串 #值可以是任何型別的物件 #字典物件的鍵是唯一的,不可能有兩個元素具有相同的鍵 members = { 'account1' : 13 , 'account2' : 12 } members = { 'account1' : {'account':'account1', 'level': 13, 'point':3000} , 'account2' : {'account':'account2', 'level': 12, 'point':36000} }
-
獲取鍵的值:
members['account1'] #獲取account1的值
-
添加:
members = {} #定義空字典 members['accoutn1'] = 13 #添加account1 members['account2'] = 14 #繼續添加account2
-
修改:
members = { 'account1' : 13, 'account2' : 14 } mambers['account2'] = 15 #修改account2

-
洗掉:
-
pop方法洗掉:
members = { 'account1' : 13 , 'account2' : 12 } ? val = members.pop('account1') #洗掉account1 print(members)

-
del關鍵字洗掉:
members = { 'account1' : 13 , 'account2' : 12 } ? del members['account1'] print(members)

-
-
判斷鍵值是否存在:
members = { 'account1' : 13 , 'account2' : 12 } ? if 'account1' in members: print('account1 在字典中存在') ? if 'account88' not in members: print('account88 不在字典中')
-
遍歷字典:
#items方法,回傳的是一個類似串列一樣的物件,其中每個元素就是鍵值組成的元組 #item回傳的值:[('account1', 13), ('account2', 12), ('account3', 15)] members = { 'account1' : 13 , 'account2' : 12 , 'account3' : 15 , } ? for account,level in members.items(): print (f'account:{account}, level:{level}') ?
-
清空字典:
members.clear()
-
字典合并:
members = { 'account1' : 13 , 'account2' : 12 , 'account3' : 15 , } ? another = { 'account4' : 13 , 'account5' : 12 , } ? members.update(another) ? print(members)
-
獲取字典元素個數:
len(members)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/546912.html
標籤:Python
上一篇:2022SCNUOJ演算法課題目及解法總匯(JAVA)
下一篇:Java集合
