Python第三週學習
字串迴圈左移
給定一個字串S,要求把S的前k個字元移動到S的尾部,如把字串“abcdef”前面的2個字元‘a’、‘b’移動到字串的尾部,得到新字串“cdefab”,稱作字串迴圈左移k位。
輸入格式:輸入在第1行中給出一個不超過100個字元長度的、以回車結束的非空字串;第2行給出非負整數N。
輸出格式:在一行中輸出迴圈左移N次後的字串。
示例輸入 1
abcd
2
示例輸出 1
cdab
s=input()
number =int(input())
print(s[number:len(s)]+s[0:number])
計算字元個數
通過輸入,在一行內接收一個僅由字母和數字組成的字串,還有一個單一字元,然後輸出“輸入的字串”中含有該字元的個數。不區分大小寫。輸入格式:輸入一個由字母和數字組成的字串,和一個字元,以空格隔開。輸出格式:輸出“輸入的字串”中含有該字元的個數。
【提示】:1、必須使用字串處理方法str.lower()或str.upper()。2、輸入資料僅佔一行,獲取輸入的字串和字元必須使用str.split()分別獲取。
示例輸入 1
a1234bAcdeAf a
示例輸出 1
3
s=input()
sz=s.split(" ")
print(sz[0].upper().count(sz[1].upper()))
溫度轉換【part two】
溫度的刻畫有兩個不同體系:攝氏度(Celsius)和華氏度(Fahrenheit)。請編寫程式將使用者輸入華氏度轉換為攝氏度,或將輸入的攝氏度轉換為華氏度。轉換演算法如下:(C表示攝氏度、F表示華氏度)C = ( F - 32 ) / 1.8;F = C * 1.8 + 32。
要求如下:
(1) 輸入輸出的攝氏度可採用大小寫字母C結尾,溫度可以是整數或小數,如:12.34C指攝氏度12.34度;
(2)輸入輸出的華氏度可採用大小寫字母F結尾,溫度可以是整數或小數,如:87.65F指華氏度87.65度;
(3)輸出保留小數點後兩位,輸入格式錯誤時,輸出提示:輸入格式錯誤;
(4) 使用input()獲得測試用例輸入時,不要增加提示字串。
示例輸入 1
12.34C
示例輸出 1
54.21F
示例輸入 2
12.34
示例輸出 2
輸入格式錯誤!
示例輸入 3
12.34c
示例輸出 3
54.21f
s=input() if s[-1] in ["f","c"]: if s.endswith("f"): print(("%.2f" % ((eval(s[0:len(s) - 1]) - 32) / 1.8)) + "c") elif s.endswith("c"): print(("%.2f" % ((eval(s[0:len(s) - 1]) * 1.8) + 32)) + "f") elif s[-1] in ["F","C"]: if s.endswith("F"): print(("%.2f" % ((eval(s[0:len(s) - 1]) - 32) / 1.8)) + "C") elif s.endswith("C"): print(("%.2f" % ((eval(s[0:len(s) - 1]) * 1.8) + 32)) + "F") else: print("輸入格式錯誤!")
單詞統計【part one】
本題目要求編寫程式統計一行字元中單詞的個數。所謂“單詞”是指連續不含空格的字串,各單詞之間用空格分隔,空格數可以是多個。
輸入格式:輸入給出一行字元。
輸出格式:在一行中輸出單詞個數。
示例輸入 1
Let's go to room 209.
示例輸出 1
5
s=input()
print(len(s.split()))
字串替換
將給定字串中的大寫字母和小寫英文字母都按以下對應規則替換:
輸入格式:輸入在一行中給出一個不超過80個字元、並以回車結束的字串。
輸出格式:輸出在一行中給出替換完成後的字串。
示例輸入 1
CAPItaL LeTtERS
示例輸出 1
Only this part “XZKRgzO OvGgVIH” are replaced.
str = input()
newStr = ''
for i in str:
num = ord(i)
if (65 <= num <= 90):
i = i.replace(i, chr(155 - num))
if (97 <= num <= 122):
i = i.replace(i, chr(219 - num))
newStr += i
print(f"Only this part “{newStr}” are replaced.")
查詢指定字元
用鍵盤輸入兩行,第一行是一個字元,第二行是一個字串,查詢並返回第一行中字元在第二行字串中是否出現,若出現返回該字母在字串中的最大下標,若不出現,返回“Not Found”。
輸入格式:輸入的第一行是一個待查詢的字元。第二行是一個以回車結束的非空字串(不超過20個字元,超出則報錯)。
輸出格式:如果找到,在一行內按照格式“index = 下標”輸出該字元在字串中所對應的最大下標(下標從0開始);否則輸出"Not Found"(不區分大小寫)。
示例輸入 1
M
programming
示例輸出 1
index = 7
示例輸入 2
a
1234
示例輸出 2
Not Found
示例輸入 3
d
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
示例輸出 3
輸入錯誤!
str1 = input().lower()
str2 = input().lower()
num = -1
if len(str2)>20:
print("輸入錯誤!")
elif str1 not in str2:
print("Not Found")
for i in range(0,len(str2)):
if str1 == str2[num]:
print("index = "+str(len(str2)+num))
break
num -= 1
字母反轉
對一個以“$”結束的字串,將其小寫字母全部轉換成大寫字母,把大寫字母全部轉換成小寫字母,其他字元不變輸出。
輸入格式:輸入為一個以“$”結束的字串(輸入允許換行)。
輸出格式:在一行中輸出迴圈左移N次後的字串。
示例輸入 1
Hello World! 123$
示例輸出 1
hELLO wORLD! 123
示例輸入 2
Good GOOD study
dAY dAY uP!
$
示例輸出 2
gOOD good STUDY
Day Day Up!
s=input()
while(not (s.endswith("$"))):
s=s+"\n"+input()
s=s.replace("$","")
t=""
for n in s:
if(n.islower()):
t=t+n.upper()
elif(n.isupper()):
t=t+n.lower()
else:
t=t+n
print(t)
劃分分數等級
編寫程式實現以下功能:判斷成績的等級,90100輸出“A”,8089輸出“B”,7079輸出“C”,6069輸出“D”,0~59輸出“E”,其他輸出“invalid”。
輸入格式:輸入格式:一個數值。
輸出格式:A、B、C、D、E或invalid
示例輸入 1
100
示例輸出 1
A
示例輸入 2
101
示例輸出 2
Invalid
sc = int(input())
if sc<=100:
if sc>=90:
print("A")
elif sc >= 80:
print("B")
elif sc >= 70:
print("C")
elif sc >= 60:
print("D")
else:
print("E")
else:
print("Invalid")
計算年薪
編寫程式,要求輸入一個人的姓名和目前的年薪,然後計算這個人下一年的薪水。如果年薪小於40000元,則下一年的年薪將增長5%。如果年薪大於等於40000元收入,下一年的年薪除增加2000元外,還會增加超過40000元部分的2%。
輸入格式:共輸入兩行資訊,第一行為姓名(字串),第二行為目前年薪(數字)。
請輸入姓名:
請輸入目前的年薪:****元
輸出格式:輸出新一年的年薪是:元 。不要增加額外的提示資訊。
**新一年的年薪是:元
示例輸入 1
Linda
10000
示例輸出 1
Linda新一年的年薪是:10500.0元
示例輸入 1
Bob
78946
示例輸出 1
Bob新一年的年薪是:81724.9元
name = input()
money = int(input())
if money<40000:
money*=1.05
else:
money+=(2000+(money-40000)*0.02)
print(name,"新一年的年薪是:","%.1f"%money,"元",sep="")
克萊姆法則求解方程
請用克萊姆法則解下面的線性方程2x2系統:
編寫程式,使用者輸入數字a、b、c、d、e和f,然後顯示x和y的結果。如果ad-bc為零,呈現“The equation has no solution”。
輸入格式:a,b,c,d,e和f的值(逗號分隔)
輸出格式:x和y的值(空格分隔,小數點後保留1位)
示例輸入 1
1.0,2.0,2.0,4.0,4.0,5.0
示例輸出 1
The equation hasno solution
示例輸入 2
2,4,1,8,3,2
示例輸出 2
x=1.3,y=0.1
s = (input()).split(',')
a = eval(s[0])
b = eval(s[1])
c = eval(s[2])
d = eval(s[3])
e = eval(s[4])
f = eval(s[5])
if((float(a)*float(d)-float(b)*float(c)) == 0):
print("The equation has no solution")
else:
x = (float(e)*float(d)-float(b)*float(f))/(float(a)*float(d)-float(b)*float(c))
y = (float(a)*float(f)-float(e)*float(c))/(float(a)*float(d)-float(b)*float(c))
print("x={1:.1f},y={0:.1f}".format(y,x))