1python
今日做業git
1.有變量name = "aleX leNb" 完成以下操做:ide
# 1)移除 name 變量對應的值兩邊的空格,並輸出處理結果 '''''' ''' # name = " aleX leNb" # print(name) # print(name.strip()) ''' # 2)移除name變量左邊的"al"並輸出處理結果 ''' # name = "aleX leNb" # print(name.replace("al","")) ''' ''' name = "aleX leNb" s1=name.strip("al") print(s1) ''' ''' name = "aleX leNb" s1=name.lstrip('al') print(s1) ''' # 3)移除name變量右⾯的"Nb",並輸出處理結果 ''' name = "aleX leNb" print(name.replace("Nb","")) ''' ''' name = "aleX leNb" s1=name.strip("Nb") print(s1) ''' ''' name = "aleX leNb" s1=name.rstrip('Nb') print(s1) ''' # 4)移除name變量開頭的a"與最後的"b",並輸出處理結果 #strip ''' name = "aleX leNb" name=name.replace('a','') name=name.replace('b','') print(name) ''' # 5)判斷 name 變量是否以 "al" 開頭,並輸出結果 ''' name = "aleX leNb" s=name.startswith('al') print(s) #True ''' # 6)判斷name變量是否以"Nb"結尾,並輸出結果 ''' name = "aleX leNb" s=name.endswith('Nb') print(s) #True ''' # 7)將 name 變量對應的值中的 全部的"l" 替換爲 "p",並輸出結果 ''' name = "aleX leNb" s=name.replace("l",'p') print(s) ''' # 8)將name變量對應的值中的第⼀個"l"替換成"p",並輸出結果 ''' name = "aleX leNb" s=name.replace("l",'p',1) print(s) ''' # 9)將 name 變量對應的值根據 全部的"l" 分割,並輸出結果。 ''' name = "aleX leNb" s=name.split('l') print(s) ''' # 10)將name變量對應的值根據第⼀個"l"分割,並輸出結果。 ''' name = "aleX leNb" s=name.split('l',1) print(s) ''' # 11)將 name 變量對應的值變⼤寫,並輸出結果 ''' name = "aleX leNb" s=name.upper() print(s) ''' # 12)將 name 變量對應的值變⼩寫,並輸出結果 ''' name = "aleX leNb" s=name.lower() print(s) ''' # 13)將name變量對應的值⾸字⺟"a"⼤寫,並輸出結果 ''' name = "aleX leNb" s=name.title() print(s) ''' # 14)判斷name變量對應的值字⺟"l"出現⼏次,並輸出結果 ''' name = "aleX leNb" s=name.count('l') print(s) ''' # 15)若是判斷name變量對應的值前四位"l"出現⼏次,並輸出結果 ''' ??? name = "aleX leNb" s=name.count('l',4) print(s) ''' ''' # name = "aleX leNb" # s=name.count('l',0,4) #區間尋找,從字符串的0-4尋找 # print(s) ''' ''' name = "aleX leNb" s=name[0:4].count('l') #從第1個開始到第4個,切片處理 print(s) ''' ''' name = "aleX leNb" s=name[0:4].count('l') #從第1個開始到第4個,切片處理 print(s) ''' # 16)從name變量對應的值中找到"N"對應的索引(若是找不到則報錯),並輸出結果 ''' name = "aleX leNb" s=name.index("N") print(s) ''' # name = "aleX leNb" # s=name.index("N") # print(s) #結果:7 # 17)從name變量對應的值中找到"N"對應的索引(若是找不到則返回-1)輸出結果 ''' name = "aleX leNb" s=name.find("N") print(s) #結果: ''' # 18)從name變量對應的值中找到"X le"對應的索引,並輸出結果 ''' name = "aleX leNb" s=name.index('X le') print(s) ''' # 19)請輸出 name 變量對應的值的第 2 個字符? #這句話有歧義:能夠是第二個字符,也能夠是索引爲2 ''' # name = "aleX leNb" # s=name[1] # print(s) #l # name = "aleX leNb" # s=name[2] # print(s) ''' # 20)請輸出 name 變量對應的值的前 3 個字符? # name = "aleX leNb" # s=name[0:3] # print(s) # 21)請輸出 name 變量對應的值的後 2 個字符? # name = "aleX leNb" # s=name[-2:] # print(s) # 22)請輸出 name 變量對應的值中 "e" 所在索引位置? #22) ''' name = "aleX leNb" s=name.index('e') print(s) # s1=s+1+name[3:].index('e') s1=s+1+name[3:].index('e') print(s1) ''' """ 老師講解 while循環//for循環差很少是放棄索引 ame = "aleX leNb" i=0 while i<len(name): if name[i]=='e': print(i) i+=1 """ # name = "aleX leNb" # print(name.find('e'),name.find('e',3))
2.有字符串s = "123a4b5c"
# 1)經過對s切⽚造成新的字符串s1,s1 = "123" ''' s = "123a4b5c" s1=s[0:3] #或者#s1=s[:3] print(s1) ''' # 2)經過對s切⽚造成新的字符串s2,s2 = "a4b" ''' s = "123a4b5c" s2=s[3:6] print(s2) ''' # 3)經過對s切⽚造成新的字符串s3,s3 = "1345" ''' s = "123a4b5c" s3=s[::2] print(s3) ''' # 4)經過對s切⽚造成字符串s4,s4 = "2ab" ''' # s = "123a4b5c" # s3=s[1:-1:2] #s3=s[1:6:2] # print(s3) ''' # 5)經過對s切⽚造成字符串s5,s5 = "c" ''' # s = "123a4b5c" # s5=s[-1] # print(s5) ''' # 6)經過對s切⽚造成字符串s6,s6 = "ba2" ''' s = "123a4b5c" s5=s[-3:0:-2] print(s5) ''' ''' s = "123a4b5c" s5=s[-3::-2] print(s5) '''
3.使⽤while和for循環分別打印字符串s="asdfer"中每一個元素。字體
''' print(s[0]) ''' ''' s="asdfer" for i in s: #i是個變量,隨便起都行 print(i) ''' ''' s="asdfer" count=0 while count<len(s): print(s[count]) count+=1 ''' ''' s='abcdef' i=0 while i<len(s): print(s[i]) i+=1 ''' ''' ''' ''' s='abcdef' for i in s: print(i) '''
4.使⽤for循環對s="asdfer"進⾏循環,可是每次打印的內容都是"asdfer"。編碼
''' s="asdfer" for i in s: print(s) '''
5.使⽤for循環對s="abcdefg"進⾏循環,每次打印的內容是每一個字符加上sb,# 例如:asb, bsb,csb,...gsb。spa
''' 方法一 s="asdfer" for i in s: print(i+'sb') ''' ''' 方法二 s="asdfer" count=0 while count<len(s): print(s[count]+'ab') count+=1 '''
6.使⽤for循環對s="321"進⾏循環,打印的內容依次是:"倒計時3秒","倒計時
2秒","倒計時1秒","出發!"。
''' s="321" for i in s: print("倒計時%s秒"%(i)) print(f"倒計時{c}秒") #格式化輸出 print('出發!') ''' """ #for循環+else s="321" for i in s: print("倒計時%s秒"%(i)) print(f"倒計時{c}秒") else: #當for中的循環結束以後自動執行else,break不會觸發else的執行 print('出發!') """ ''' while 1: break #直接出來,不會管else else: print('出發') ''' ''' while False: break #直接出來,不會管else else: print('出發') #結果 :出發 '''
7,實現⼀個整數加法計算器(兩個數相加):
如:content = input("請輸⼊內容:") ⽤戶輸⼊:5+9或5+ 9或5 + 9,而後進
⾏分割再進⾏計算。
''' content = input("請輸⼊內容:") count=content.split('+') sum=0 # print(count) for i in count: sum=sum+int(i) print(sum) ''' ''' #老師講解 ''' ''' content = input("請輸⼊內容:") #⽤戶輸⼊:5+9 #字符串切割 lst=content.split('+') #獲取到兩個數 a=lst[0] b=lst[1] print(int(a)+int(b)) '''
8,升級題:實現⼀個整數加法計算器(多個數相加):
如:content = input("請輸⼊內容:") ⽤戶輸⼊:5+9+6 +12+ 13,而後進⾏
分割再進⾏計算。
''' # content = input("請輸⼊內容:") # count=content.split('+') # sum=0 # # print(count) # for i in count: # sum=sum+int(i) # print(sum) ''' ''' #老師講解,這個題目在這裏有點超前 #自動去空格,int能夠幫助把字符串裏的空格去掉 #int,用的是strip(),只能去除兩邊的空格,中間的空格去不掉 #strip(),括號裏邊能夠加上去掉的內容 content = input("請輸⼊內容:") lst=content.split('+') sum=0 for el in lst: #可使用for循環遍歷列表 sum+=int(el) print(sum) '''
''' content = input("請輸⼊內容:").replace(" ","") #空格所有替換成空 lst=content.split('+') sum=0 for el in lst: #可使用for循環遍歷列表 sum+=int(el) print(sum) ''' #這個題難點在於,當前尚未學到這塊知識 #無法解釋負號問題 """ # re #eval解決方案 """
9,計算⽤戶輸⼊的內容中有⼏個整數(以個位數爲單位)。
如:content = input("請輸⼊內容:") # 如fhdal234slfh98769fjdla
''' content = input("請輸⼊內容:") count=0 for i in content: if i.isdigit(): count+=1 print(count) ''' #c.isnumeric(),判斷的範圍更廣 # content = input("請輸⼊內容:") # count=0 # for i in content: # if i.isdigit(): # count+=1 # print(count)
十、寫代碼,完成下列需求:
⽤戶可持續輸⼊(⽤while循環),⽤戶使⽤的狀況:
輸⼊A,則顯示⾛⼤路回家,而後在讓⽤戶進⼀步選擇:
是選擇公交⻋,仍是步⾏?
選擇公交⻋,顯示10分鐘到家,並退出整個程序。
選擇步⾏,顯示20分鐘到家,並退出整個程序。
輸⼊B,則顯示⾛⼩路回家,並退出整個程序。
輸⼊C,則顯示繞道回家,而後在讓⽤戶進⼀步選擇:
是選擇遊戲廳玩會,仍是⽹吧?
選擇遊戲廳,則顯示 ‘⼀個半⼩時到家,爸爸在家,拿棍等你。’並讓其
從新輸⼊A,B,C選項。
選擇⽹吧,則顯示‘兩個⼩時到家,媽媽已作好了戰⽃準備。’並讓其重
新輸⼊A,B,C選項。
#這個題目就是練代碼 '''##字體轉換成百家姓以後,編碼發生了改變,因此儘可能本身敲這些字 while 1: s=input("請輸入ABCD進行選擇回家方式:") if s=='A': k=input('選擇公交⻋,仍是步⾏') print(k) if k == '公交車': print('10分鐘到家') break elif k=='步行': print('20分鐘到家') break elif s=='B': print('走小路回家') break elif s=='C': print('繞道回家') k = input('選擇遊戲廳,仍是⽹吧') if k=='遊戲廳': print('⼀個半⼩時到家,爸爸在家,拿棍等你') else: print('兩個⼩時到家,媽媽已作好了戰⽃準備。') ''' """#老師講解 """ ''' while 1: content=input('請輸入ABC:').upper() if content=='A': print('走大路回家') tra=input('請選擇公交車仍是不行') if tra=="公交車": print("10分鐘到家") else: print("20分鐘到家") break # pass #過 保證語法正確,先佔着 elif content=='B': print('走小路回家') break elif content=='C': print('繞道回家') play=input('去遊戲廳仍是網吧?') if play=='遊戲廳': print("1個半小時回家,,爸爸在家,拿棍等你") else: print('兩個⼩時到家,媽媽已作好了戰⽃準備。') # pass #量大,可是邏輯性不強 '''
11.寫代碼:計算 1 - 2 + 3 ... + 99 中除了88之外全部數的總和?code
# sum=0 # for i in range(1,100): # if i==88: # i=89 # # continue # if i%2==1: # sum+=i # elif i%2==0: # sum-=i # print(sum) ''' count = 1 sum = 0 while count < 100: if count == 88: count = count + 1 continue if count %2 == 0:# 偶數 sum = sum - count else: sum = sum + count count = count + 1 print(sum) '''
12. (升級題)判斷⼀句話是不是回⽂. 回⽂: 正着念和反着念是⼀樣的. 例如, 上海
⾃來⽔來⾃海上(升級題)
# s=input("請輸入一句話:") # s1=s[::-1] # if s==s1: # print('迴文') # else: # print("不是迴文")
13. 輸⼊⼀個字符串,要求判斷在這個字符串中⼤寫字⺟,⼩寫字⺟,數字,其它字符共出現了多少次,並輸出出來orm
''' s=input("請輸⼊⼀個字符串:") digit_l=0 upper_l=0 lower_l=0 other_1=0 for i in s: if i.isdigit(): digit_l+=1 elif i.islower(): lower_l+=1 elif i.isupper(): upper_l+=1 else: other_1+=1 print(digit_l,lower_l,upper_l,other_1) '''
1四、製做趣味模板程序需求:等待⽤戶輸⼊名字、地點、愛好,根據⽤戶的名
字和愛好進⾏任意現實 如:敬愛可親的xxx,最喜歡在xxx地⽅⼲xxx
'''#三種格式化方式 name=input("請輸入名字:") place=input("請輸入地點:") love=input("請輸入愛好:") print("敬愛可親的%s,最喜歡在%s地⽅⼲%s"%(name,place,love)) print("敬愛可親的{0},最喜歡在{1}地⽅⼲{2}".format(name,place,love)) print(f"敬愛可親的{name},最喜歡在{place}地⽅⼲{love}") '''
15.(升級題) 給出百家姓. 而後⽤戶輸⼊⼀個⼈的名字. 判斷這個⼈是不是百家blog
姓中的姓⽒(升級題)
百家姓:
目前只能作一個low版本的,可是邏輯是有問題的
first_names = """ 趙錢孫李,周吳鄭王。 馮陳褚衛,蔣沈韓楊。 朱秦尤許,何呂施張。 孔曹嚴華,⾦魏陶姜。 戚謝鄒喻,柏⽔竇章。 雲蘇潘葛,奚範彭郎。 魯⻙昌⻢,苗鳳花⽅。 俞任袁柳,酆鮑史唐。 費廉岑薛,雷賀倪湯。 滕殷羅畢,郝鄔安常。 樂於時傅,⽪卞⻬康。 伍餘元⼘,顧孟平⻩。 和穆蕭尹,姚邵湛汪。 祁⽑禹狄,⽶⻉明臧。 計伏成戴,談宋茅龐。 熊紀舒屈,項祝董梁。 杜阮藍閔,席季麻強。 賈路婁危,江童顏郭。 梅盛林刁,鍾徐邱駱。 ⾼夏蔡⽥,樊胡凌霍。 虞萬⽀柯,昝管盧莫。 經房裘繆,⼲解應宗。 丁宣賁鄧,鬱單杭洪。 包諸左⽯,崔吉鈕龔。 程嵇邢滑,裴陸榮翁。 荀⽺於惠,甄曲家封。 芮羿儲靳,汲邴糜鬆。 井段富巫,烏焦巴⼸。 牧隗⼭⾕,⻋侯宓蓬。 全郗班仰,秋仲伊宮。 寧仇欒暴,⽢鈄厲戎。 祖武符劉,景詹束⻰。 葉幸司韶,郜黎薊薄。 印宿⽩懷,蒲邰從鄂。 索鹹籍賴,卓藺屠蒙。 池喬陰鬱,胥能蒼雙。 聞莘黨翟,譚貢勞逄。 姬申扶堵,冉宰酈雍。 卻璩桑桂,濮⽜壽通。 邊扈燕冀,郟浦尚農。 溫別莊晏,柴瞿閻充。 慕連茹習,宦艾⻥容。 向古易慎,⼽廖庾終。 暨居衡步,都耿滿弘。 匡國⽂寇,⼴祿闕東。 歐⽎沃利,蔚越夔隆。 師鞏厙聶,晁勾敖融。 冷訾⾟闞,那簡饒空。 曾毋沙乜,養鞠須豐。 巢關蒯相,查後荊紅。 遊竺權逯,蓋益桓公。 万俟司⻢,上官歐陽。 夏侯諸葛,聞⼈東⽅。 赫連皇甫,尉遲公⽺。 澹臺公冶,宗政濮陽。 淳于單于,太叔申屠。 公孫仲孫,軒轅令狐。 鍾離宇⽂,⻓孫慕容。 鮮于閭丘,司徒司空。 丌官司寇,仉督⼦⻋。 顓孫端⽊,巫⻢公⻄。 漆雕樂正,壤駟公良。 拓跋夾⾕,宰⽗⾕梁。 晉楚閆法,汝鄢塗欽。 段⼲百⾥,東郭南⻔。 呼延歸海,⽺⾆微⽣。 嶽帥緱亢,況郈有琴。 梁丘左丘,東⻔⻄⻔。 商牟佘佴,伯賞南宮。 墨哈譙笪,年愛陽佟。 第五⾔福,百家姓終。 """
# name=input("請輸入一個名字:").strip() # name1=name[0]#這裏只能查找單姓 # if name1 in first_names: # print("good,在百家姓內") # else: # print("這個名字姓氏不在百家姓中!") ''' # 這個題目是有問題的 #歐陽娜娜 #順序: {歐,歐陽,歐陽娜,歐陽娜娜} ''' ''' #擴展 lst=["上官",'歐陽','趙','錢','孫'] name=input('請輸入你的名字') #歐陽南妮 for el in lst: #el是姓 if name.startswith(el): print('在百家姓裏面的') break else: print("對不起,姓氏不在百家姓裏") '''
練手題:索引
分別⽤while,for循環輸出字符串s = input("你想輸⼊的內容")的每⼀個字符