題目練習
Day03作業及默寫
1.有變數name = "aleX leNb" 完成如下操作:
- 移除 name 變數對應的值兩邊的空格,並輸出處理結果
name ="aleX leNb"
print(name.strip())
- 移除name變數左邊的"al"並輸出處理結果
name ="aleX leNb"
print(name.lstrip('al'))
- 移除name變數右面的"Nb",並輸出處理結果
name ="aleX leNb"
print(name.rstrip('Nb'))
- 移除name變數開頭的a"與最後的"b",並輸出處理結果
name ="aleX leNb"
s=name[1:-1]
print(s)
- 判斷 name 變數是否以 "al" 開頭,並輸出結果
name ="aleX leNb"
s=name[0:2]
print(s)
if s=='al':
print("該字串是以al開頭")
else:
print("該字串不是以al開頭")
- 判斷name變數是否以"Nb"結尾,並輸出結果
name ="aleX leNb"
s=name[-2:]
print(s)
if s=='Nb':
print("該字串是以
else:
print("該字串不是以Nb結尾")
- 將 name 變數對應的值中的 所有的"l" 替換為 "p",並輸出結果
name ="aleX leNb"
print(name.replace('l','p'))
- 將name變數對應的值中的第一個"l"替換成"p",並輸出結果
name ="aleX leNb"
print(name.replace('l','p',1))
- 將 name 變數對應的值根據 所有的"l" 分割,並輸出結果。
name ="aleX leNb"
s=name.split('l')
print(s)
- 將name變數對應的值根據第一個"l"分割,並輸出結果。
name ="aleX leNb"
s=name.split('l',1)
print(s)
- 將 name 變數對應的值變大寫,並輸出結果
name ="aleX leNb"
s=name.upper()
print(s)
- 將 name 變數對應的值變小寫,並輸出結果
name ="aleX leNb"
s=name.lower()
print(s)
- 將name變數對應的值首字母"a"大寫,並輸出結果
name ="aleX leNb"
s=name.title()
print(s)
- 判斷name變數對應的值字母"l"出現幾次,並輸出結果
name ="aleX leNb"
s=name.count('l')
print(s)
- 如果判斷name變數對應的值前四位"l"出現幾次,並輸出結果
name ="aleX leNb"
s=name.count('l',0,4)
print(s)
- 從name變數對應的值中找到"N"對應的索引(如果找不到則報錯),並輸出結果
name ="aleX leNb"
s=name.index('N')
print(s)
- 從name變數對應的值中找到"N"對應的索引(如果找不到則返回-1)輸出結果
name ="aleX leNb"
s=name.find('N')
print(s)
- 從name變數對應的值中找到"X le"對應的索引,並輸出結果
name ="aleX leNb"
s=name.index('X le')
print(s)
- 請輸出 name 變數對應的值的第 2 個字元?
name ="aleX leNb"
s=name[1]
print(s)
- 請輸出 name 變數對應的值的前 3 個字元?
name ="aleX leNb"
s=name[0:3]
print(s)
- 請輸出 name 變數對應的值的後 2 個字元?
name ="aleX leNb"
s=name[-2:]
print(s)
- 請輸出 name 變數對應的值中 "e" 所在索引位置(兩個e都找)?
name ="aleX leNb"
s=name.rfind('e')
print(s)
s1=name.find('e')
print(s1)
2.有字串s = "123a4b5c"
- 通過對s切片形成新的字串s1,s1 = "123"
s = "123a4b5c"
s1=s[0:3]
print(s1)
- 通過對s切片形成新的字串s2,s2 = "a4b"
s = "123a4b5c"
s2=s[3:-2]
print(s2)
- 通過對s切片形成新的字串s3,s3 = "1345"
s = "123a4b5c"
s3=s[::2]
print(s3)
- 通過對s切片形成字串s4,s4 = "2ab"
s = "123a4b5c"
s4=s[1:-2:2]
print(s4)
- 通過對s切片形成字串s5,s5 = "c"
s = "123a4b5c"
s5=s[-1:-2:-1]
print(s5)
- 通過對s切片形成字串s6,s6 = "ba2"
s = "123a4b5c"
s6=s[-3:0:-2]
print(s6)
- 使用while和for迴圈分別列印字串s="asdfer"中每個元素。
s="asdfer"
num=len(s)
i=0
while(i<num):
print(s[i])
i+=1
或者
s="asdfer"
for i in s:
print(i)
4.使用for迴圈對s="asdfer"進行迴圈,但是每次列印的內容都是"asdfer"。
while True:
s="asdfer"
for i in s:
print(i)
- 使用for迴圈對s="abcdefg"進行迴圈,每次列印的內容是每個字元加上sb, 例如:asb, bsb,csb,...gsb。
while True:
s = "abcdefg"
for i in s:
print(i+'sb')
- 使用for迴圈對s="321"進行迴圈,列印的內容依次是:"倒計時3秒","倒計時2秒","倒計時1秒","出發!"。
while True:
s = "321"
for i in s:
print('倒計時%s秒'%(i))
if i=='1':
print("出發!")
7.實現一個整數加法計算器(兩個數相加):
如:content = input("請輸入內容:") 使用者輸入:5+9或5+ 9或5 + 9,然後進行分割再進行計算。
content = input("請輸入內容:")
s=content.split('+')
sum=int(s[0])+int(s[1])
print(sum)
- 升級題:實現一個整數加法計算器(多個數相加):
content = input("請輸入內容:")
s=content.split('+')
NN=len(s)
i=0
sum=0
while i<NN:
sum+=int(s[i])
i+=1
print(sum)
如:content = input("請輸入內容:") 使用者輸入:5+9+6 +12+ 13,然後進行分割再進行計算。
9.計算使用者輸入的內容中有幾個整數(以個位數為單位)。
如:content = input("請輸入內容:") # 如fhdal234slfh98769fjdla
s="fhdal234slfh98769fjdla"
i=0
for n in s:
if n.isdigit():
i+=1
print(i)
10.寫程式碼,完成下列需求:(升級題)
使用者可持續輸入(用while迴圈),使用者使用的情況:
輸入A,則顯示走大路回家,然後在讓使用者進一步選擇:
是選擇公交車,還是步行?
選擇公交車,顯示10分鐘到家,並退出整個程式。
選擇步行,顯示20分鐘到家,並退出整個程式。
輸入B,則顯示走小路回家,並退出整個程式。
輸入C,則顯示繞道回家,然後在讓使用者進一步選擇:
是選擇遊戲廳玩會,還是網咖?
選擇遊戲廳,則顯示 ‘一個半小時到家,爸爸在家,拿棍等你。’並讓其重新輸入A,B,C選項。
選擇網咖,則顯示‘兩個小時到家,媽媽已做好了戰鬥準備。’並讓其重新輸入A,B,C選項。
while True:
msg=input("使用者輸入A或B或C:")
if msg=="A":
print("走大路回家")
msg1=input("輸入公交車或步行:")
if msg1=="公交車":
print("10分鐘到家")
break
elif msg1=="步行":
print("20分鐘到家")
break
elif msg=='B':
print("10分鐘到家")
break
elif msg=='C':
print("繞道回家")
msg2 = input("遊戲廳或者回家:")
if msg2 == "遊戲廳":
print("一個半小時到家,爸爸在家,拿棍等你。")
continue
elif msg2 == "回家":
print("兩個小時到家,媽媽已做好了戰鬥準備。")
continue
11.寫程式碼:計算 1 - 2 + 3 ... + 99 中除了88以外所有數的總和?
count=0
sum=0
while count<99:
count+=1
sum+=(-1)**(count+1)*count
sum-=88
print(sum)
12.判斷⼀句話是否是回⽂. 回⽂: 正著念和反著念是⼀樣的. 例如, 上海 ⾃來⽔來⾃海上(升級題)
s="上海⾃來⽔來⾃海上"
s1=s[::-1]
if s==s1:
print("是迴文")
else:
print("不是迴文")
輸⼊⼀個字串,要求判斷在這個字串中⼤寫字⺟,⼩寫字⺟,數字, 其它字元共出現了多少次,並輸出出來
i1=0
i2=0
i3=0
i4=0
s=input("請輸入字串:")
for n in s:
if n.isdigit():
i1+=1
elif n.isupper():
i2 += 1
elif n.islower():
i3+=1
else:
i4+=1
print("大寫字母個數為%s,小寫字母個數為%s,數字個數為%s,其他字元個數為%s"%(i2,i3,i1,i4))
14.製作趣味模板程式需求:等待⽤戶輸⼊名字、地點、愛好,根據⽤戶的名字和愛好進行任意現實 如:敬愛可親的xxx,最喜歡在xxx地⽅⼲xxx
s1=input("姓名:")
s2=input("地點:")
s3=input("愛好:")
print("敬愛可親的%s最喜歡在%s%s"%(s1,s2,s3))
15.將一下程式碼中的內容使用迴圈列印,分別使用while迴圈和for迴圈
s = ‘我怎麼這麼可愛’ 實現效果是
我
怎
麼
這
麼
可
愛
s="我怎麼這麼可愛"
num=len(s)
i=0
while i<num:
i+=1
print(s[i-1])
或者
s="我怎麼這麼可愛"
for n in s:
print(n)
16.
首先讓使用者輸入序號選擇格式如下:
0.退出
1.開始登入
如果使用者選擇序號0 就提示使用者退出成功
如果使用者選擇序號1就讓使用者輸入使用者名稱密碼然後進行判斷,正確就終止迴圈,錯誤重新輸入
while True:
s=input("請輸入序號:")
if s=='0':
print("使用者退出成功")
break
elif s=='1':
s1=input("請輸入使用者名稱:")
s2= input("請輸入密碼:")
if s1=="王哥" and s2=="123":
print("輸入正確")
break
17.三次登入:
1.讓使用者輸入三次的機會,錯一次的時候就要詢問使用者是否要繼續
2.分別判斷使用者名稱和密碼,如果使用者名稱錯誤就提示使用者錯誤,如果是密碼錯誤就提示是密碼錯誤.在輸入賬號和密碼時候不區分大小寫
3.使用格式化輸出來提示使用者所剩餘的次數
4.使用者輸入正確就提示’輸入正確’,並結束迴圈
num=0
while num<3:
msg1=input("請輸入使用者名稱:")
msg2=input("請輸入密碼:")
if msg1.upper()=="GuoGe".upper() and msg2.upper()=="asfgGSDa".upper():
print("輸入正確")
break
elif msg1.upper()=="GuoGe".upper() and msg2.upper()!="asfgGSDa".upper():
print("輸入使用者名稱正確,但密碼錯誤,是否要繼續?")
print("還剩下%s次機會"%(2-num))
elif msg1.upper()!="GuoGe".upper() and msg2.upper() == "asfgGSDa".upper():
print("輸入使用者名稱錯誤,密碼正確,是否要繼續?")
print("還剩下%s次機會" % (2 - num))
else:
print("輸入使用者名稱和密碼都錯誤,是否要繼續?")
print("還剩下%s次機會" % (2 - num))
num += 1
明日默寫內容:
分別用while,for迴圈輸出字串s = input("你想輸入的內容")的每一個字元。
s=input("請輸入內容:")
num=len(s)
i=0
while i<num:
print(s[i])
i+=1
或者
s=input("請輸入內容:")
for n in s:
print(n)