1. 程式人生 > 其它 >Python第三週學習

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))