現需要統計若干段文字(英文)中的不同單詞數量。
如果不同的單詞數量不超過10個,則將所有單詞輸出(按字母順序),否則輸出前10個單詞。
注1:單詞之間以空格(1個或多個空格)為間隔。
注2:忽略空行或者空格行。
注3:單詞大小寫敏感,即'word'與'WORD'是兩個不同的單詞 。
輸入說明
若干行英文,最后以!!!!!
為結束。
輸出說明
不同單詞數量。 然后輸出前10個單詞(按字母順序),如果所有單詞不超過10個,則將所有的單詞輸出。
輸入樣例
Failure is probably the fortification in your pole
It is like a peek your wallet as the thief when you
are thinking how to spend several hard-won lepta
when you Are wondering whether new money it has laid
background Because of you, then at the heart of the
most lax alert and most low awareness and left it
godsend failed
!!!!!
輸出樣例
49
Are
Because
Failure
It
a
alert
and
are
as
at
words="" while True: a=input() if a=="!!!!!": break words=words+" "+a words=words.split() s={} for i in words: if i in s: s[i]+=1 else: s[i]=1 s=list(s.items()) s.sort(key=lambda x:x[0]) print(len(s)) if len(s)<10: for i in range(len(s)): word,count=s[i] print(word) else: for i in range(10): word,count=s[i] print(word)
現在需要統計若干段文字(英文)中的單詞數量,並且還需統計每個單詞出現的次數。
注1:單詞之間以空格(1個或多個空格)為間隔。
注2:忽略空行或者空格行。
基本版:
統計時,區分字母大小寫,且不刪除指定標點符號。
進階版:
- 統計前,需要從文字中刪除指定標點符號
!.,:*?
。 注意:所謂的刪除,就是用1個空格替換掉相應字符。 - 統計單詞時需要忽略單詞的大小寫。
輸入說明
若干行英文,最后以!!!!!
為結束。
輸出說明
單詞數量
出現次數排名前10的單詞(次數按照降序排序,如果次數相同,則按照鍵值的字母升序排序)及出現次數。
輸入樣例1
failure is probably the fortification in your pole
it is like a peek your wallet as the thief when you
are thinking how to spend several hard-won lepta
when you are wondering whether new money it has laid
background because of you then at the heart of the
most lax alert and most low awareness and left it
godsend failed
!!!!!
輸出樣例1
46
the=4
it=3
you=3
and=2
are=2
is=2
most=2
of=2
when=2
your=2
words="" while True: a=input() if a=="!!!!!": break a=a.lower() for i in "!.,:*?": a=a.replace(i,' ') words=words+" "+a words=words.split() s={} for i in words: if i in s: s[i]+=1 else: s[i]=1 s=list(s.items()) s.sort(key=lambda x:x[0]) s.sort(key=lambda x:x[1],reverse=True) print(len(s)) for i in range(10): word,count=s[i] print("{}={}".format(word,count))
按照1美元=6人民幣的匯率編寫一個美元和人民幣的雙向兌換程序
輸入格式:
輸入人民幣或美元的金額,人民幣格式如:R100,美元格式如:$100
輸出格式:
輸出經過匯率計算的美元或人民幣的金額,格式與輸入一樣,幣種在前,金額在后,結果保留兩位小數
輸入樣例1:
R60
輸出樣例1:
$10.00
輸入樣例2:
$5
輸出樣例2:
R30.00
a="" a=input() if a[0]=="R": print("${:.2f}".format(eval(a[1:])/6)) else: print("R{:.2f}".format(eval(a[1:])*6))
本題目要求輸出如下圖所示的九九乘法表
注:乘積要求做格式控制,占4個位置的寬度
輸入樣例:
無
輸出樣例:
1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9
2*1=2 2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18
3*1=3 3*2=6 3*3=9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27
4*1=4 4*2=8 4*3=12 4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 5*6=30 5*7=35 5*8=40 5*9=45
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 6*7=42 6*8=48 6*9=54
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 7*8=56 7*9=63
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 8*9=72
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
for i in range(1,10): for j in range(1,10): print("{}*{}={:<4}".format(i,j,i*j),end="") print()
本題目要求輸入一個5位自然數n,如果n的各位數字反向排列所得的自然數與n相等,則輸出‘yes’,否則輸出‘no’。
輸入格式:
13531
輸出格式:
yes
輸入樣例1:
13531
輸出樣例1:
yes
輸入樣例2:
13530
輸出樣例2:
no
n = input() if n==n[::-1]: print("yes") else: print("no")
處理一段文字(可能有很多行,行數不確定),輸出每行包含的單詞數(單詞之間以空格或多個空格分隔)。
注意:處理的時候要忽略掉空行或者空格行。
提示: 使用如下代碼來處理不定行輸入
while True:
try:
your code
except:
break
輸入樣例:
1 2
bcd efg hij
x
輸出樣例:
2
3
1
while True: a=input() try: a=a.split() if(len(a))>0: print(len(a)) except: break
本題目要求計算下列分段函數f(x)的值(x為從鍵盤輸入的一個任意實數):
輸入格式:
輸入在一行中給出實數 x。
輸出格式:
在一行中按“f(x)=result”的格式輸出,其中x與result都保留兩位小數。
輸入樣例:
0.76
輸出樣例:
f(0.76)=1.20
a=eval(input()) if a<3: print("f({:.2f})=1.20".format(a)) elif a==3: print("f({:.2f})=10.00".format(a)) else: print("f({:.2f})={:.2f}".format(a,2*a+1))
輸入三角形的三邊,判斷是否能構成三角形。若能構成輸出yes,否則輸出no。
輸入格式:
在一行中直接輸入3個整數,3個整數之間各用一個空格間隔,沒有其他任何附加字符。
輸出格式:
直接輸出yes或no,沒有其他任何附加字符。
輸入樣例1:
3 4 5
輸出樣例1:
yes
輸入樣例2:
1 2 3
輸出樣例2:
no
s=input().split() a=int(s[0]) b=int(s[1]) c=int(s[2]) #a,b,c=int(input().split()) if a<b+c and a>abs(b-c) and b<a+c and b>abs(a-c) and c<a+b and a>abs(a-b): print("yes") else: print("no")
本題目要求計算下列分段函數f(x)的值(x為從鍵盤輸入的一個任意實數):
輸入格式:
直接輸入一個實數給 x,沒有其他任何附加字符。
輸出格式:
在一行中按“f(x)=result”的格式輸出,其中x與result都保留三位小數。
輸入樣例:
725
輸出樣例:
f(725.000)=-1.000
import math a=eval(input()) if abs(a)>=300: print("f({:.3f})=-1.000".format(a)) else: print("f({:.3f})={:.3f}".format(a,a**3/math.log(abs(a)+2.6,10)))
用戶從鍵盤輸入兩個整數,第一個數是要猜測的數n(<10),第二個數作為隨機種子,隨機生成一個1~10的整數,如果該數不等於n,則再次生成隨機數,如此循環,直至猜中數n,顯示“N times to got it”,其中N為猜測的次數。
輸入格式:
直接輸入兩個整數,以空格間隔。其中第一個數為要猜測的數,第二個數是隨機種子
輸出格式:
N times to got it
輸入樣例:
4 10
輸出樣例:
7 times to got it
import random a,x=map(int,input().split()) random.seed(x) c=random.randint(1,10) count=0 while True: count+=1 if c==a: print("{} times to got it".format(count)) break else: c=random.randint(1,10)
本題要求從鍵盤輸入兩個整數(以逗號間隔),編程求出這兩個數的最大公約數和最小公倍數
提示:求最大公約數可用輾轉相除法,最小公倍數用兩數的積除以最大公約數
輸入格式:
在一行中輸入兩個整數,以逗號間隔
輸出格式:
輸出“GCD:a, LCM:b",其中a為求出的最大公約數,b為求出的最小公倍數
注意:在逗號后面有個空格
輸入樣例:
12,14
輸出樣例:
GCD:2, LCM:84
import math a,b=map(int,input().split(',')) print("GCD:{:}, LCM:{:}".format(math.gcd(a,b),int(a*b/math.gcd(a,b))))
本題要求從鍵盤輸入一個字符串,判斷該串是否屬於整數、浮點數或者復數的表示
輸入格式:
輸入一個字符串
輸出格式:
輸出yes或no
輸入樣例:
-299
輸出樣例:
yes
a=input() try: a=eval(a) if type(a)==int or type(a)==float or type(a)==complex: print("yes") else: print("no") except: print("no")
將字符串中的每個數都抽取出來,然后統計所有數的個數並求和。
輸入格式:
一行字符串,字符串中的數之間用1個空格或者多個空格分隔。
輸出格式:
第1行:輸出數的個數。
第2行:求和的結果,保留3位小數。
輸入樣例:
2.1234 2.1 3 4 5 6
輸出樣例:
6
22.223
a=input().split() print(len(a)) sum=0 for i in a: sum+=eval(i) print("{:.3f}".format(sum))
編寫一個凱撒密碼加密程序,接收用戶輸入的文本和密鑰k,對明文中的字母a-z和字母A-Z替換為其后第k個字母。
輸入格式:
接收兩行輸入,第一行為待加密的明文,第二行為密鑰k。
輸出格式:
輸出加密后的密文。
輸入樣例:
在這里給出一組輸入。例如:
Hello World!
3
輸出樣例:
在這里給出相應的輸出。例如:
Khoor Zruog!
s=input() mod=int(input()) a="abcdefghijklmnopqrstuvwxyz" A="ABCDEFGHIJKLMNOPQRSTUVWXYZ" for i in s: if 'a'<=i<='z': c=a.find(i) print(a[(c+mod+26)%26],end='') elif 'A'<=i<='Z': c=A.find(i) print(A[(c+mod+26)%26],end='') else: print(i,end="")
輸入3行字符串,然后對其按照說明進行格式化輸出
輸入格式:
第1行:一個浮點數字符串
第2行:一個整數字符串
第3行:一個非數值型字符串
輸出格式:
對浮點數字符串:
第1行: 保留2
位小數輸出
第2行: 分別輸出浮點數的小寫字母e的指數形式,大寫字母e的指數形式, 浮點數的百分形式小數部分為2
位,之間以一個空格分隔。
對於整數:
第3行:在一行分別輸出其二進制與小寫十六進制,之間以一個空格分隔。
對非數值型字符串:
首先,去除掉字符串得左右空格。然后輸出3行:
第4行,將全部字符轉化為大寫並輸出。
第5行,將字符串右對齊輸出,寬度為20
。
第6行,將字符串居中輸出,寬度20
,兩側使用*
填充。
最后:
第7行,將浮點數與整數以浮點數 + 整數 = 結果
的形式輸出
輸入樣例:
3.14159265
10
abc 123
輸出樣例:
3.14
3.141593e+00 3.141593E+00 314.16%
1010 a
ABC 123
abc 123
******abc 123*******
3.14159265 + 10 = 13.14159265
a=float(input()) b=int(input()) c=input() print("{:.2f}".format(a)) print("{:e} {:E} {:.2%}".format(a,a,a)) print("{0:b} {0:x}".format(b)) c=c.strip() print("{}".format(c.upper())) print("{:>20}".format(c)) print("{:*^20}".format(c)) print("{} + {} = {}".format(a,b,a+b))
對一行字符串統計不同字符個數,分別統計並輸出中英文字符、空格、數字和其他字符個數。
輸入格式:
一行字符串
輸出格式:
依次輸出中英文字符、空格、數字、和其他字符個數。
注意:中文數字字符,如七,算作中英文字符,而不算數字字符。
輸入樣例:
Hi! 天氣不錯 二十八度 28℃。
輸出樣例:
10 3 2 3
a=input() kong=0 zhong=0 num=0 other=0 for i in a: if i.isspace(): kong+=1 elif i.isdigit(): num+=1 elif i.isalpha(): zhong+=1 else: other+=1 print("{} {} {} {}".format(zhong,kong,num,other))
新建一個字符列表,這個列表中的內容從前到后依次包含小寫字母、大寫字母、數字。 形如['a',...,'z','A',...,'Z','0',...'9']
建議:使用編程的方式生成該字符列表。
分別輸入隨機數的種子x
,生成n個密碼,每個密碼包含的m個字符是從上述字符列表中隨機抽取。
注意:本題不要用sample
函數,否則答案錯誤。
輸入格式:
種子x(注意:需將x轉換為整數型再進行設置)
密碼個數n
每個密碼的長度m
輸出格式:
n行密碼,每行m位。
輸入樣例:
1
10
8
輸出樣例:
iK2ZWeqh
FWCEPyYn
gFb51yBM
WXaSCrUZ
oL8g5ubb
bPIa84yR
nBUbHoWC
8FJowoRo
WD8s7bA1
6J7PglOU
import random import string a=int(input()) random.seed(a) n=int(input()) m=int(input()) s=list(string.ascii_letters+string.digits) for i in range(n): for j in range(m): print(random.choice(s),end="") print()
每一個列表中只要有一個元素出現兩次,那么該列表即被判定為包含重復元素。
編寫函數判定列表中是否包含重復元素,如果包含返回True
,否則返回False
。
然后使用該函數對n行字符串進行處理。最后統計包含重復元素的行數與不包含重復元素的行數。
輸入格式:
輸入n,代表接下來要輸入n行字符串。
然后輸入n行字符串,字符串之間的元素以空格相分隔。
輸出格式:
True=包含重復元素的行數, False=不包含重復元素的行數,
后面有空格。
輸入樣例:
5
1 2 3 4 5
1 3 2 5 4
1 2 3 6 1
1 2 3 2 1
1 1 1 1 1
輸出樣例:
True=3, False=2
n=int(input()) f=0 t=0 for i in range(n): s=set() a=input().split() for j in a: s.add(j) if len(s)<len(a): t+=1 else: f+=1 print("True={}, False={}".format(t,f))
生日悖論,指如果一個房間里有23個或23個以上的人,那么至少有兩個人的生日相同的概率要大於50%。嘗試編程驗證。
驗證方法提示:使用從1到365的整數代表生日。測試n次,每次生成23個隨機數,隨機數的范圍從1到365(包括365)。
然后查看有無重復的生日。
最后算出重復的比率。
輸入格式:
隨機數種子x 測試次數n
注意:需將x轉換為整數型再進行設置。
輸出格式:
rate=算出的比率
,比率保留2位小數
輸入樣例:
3 1000
輸出樣例:
rate=0.54
import random x,n=map(int,input().split()) random.seed(x) f=0 for i in range(n): s=set() for j in range(23): c=random.randint(1,365) s.add(c) if len(s)<23: f+=1 print("rate={:.2f}".format(f/n))
刪除列表中所有符合條件的值。
輸入格式:
輸入n,代表要測試n次。每次測試:
首先,輸入1行字符串(字符串內的元素使用空格分隔)
然后,輸入要刪除的元素x。
輸出格式:
輸出刪除元素x后的每行字符串。如果元素全部被刪除,則輸出空行。
注意:行尾不得有多余的空格。
輸入樣例:
5
1 1 1 2 1 2 1 1 1
1
1 1 1 2 2 2 1 1 1
2
ab ab ab cd cd de de
ab
1 1 1 1
1
x y x x x z
t
輸出樣例:
2 2
1 1 1 1 1 1
cd cd de de
x y x x x z
注意:第2個樣例輸入,文件非常大,需考慮到效率,屬於計算機專業學生需要考慮的問題。非專業的學生做不出來,不必太過糾結。
n=int(input()) for i in range(n): s=[] s1=[] s=input().split() c=input() for j in s: if j!=c: s1.append(j) print(' '.join(s1))
買單時,營業員要給用戶找錢。營業員手里有10元、5元、1元(假設1元為最小單位)幾種面額的鈔票,其希望以
盡可能少(張數)的鈔票將錢換給用戶。比如,需要找給用戶17元,那么其需要給用戶1張10元,1張5元,2張1元。
而不是給用戶17張1元或者3張5元與2張1元。
輸入格式:
輸入n,代表要進行n次測試。
然后輸入n行整數,每行代表要找的錢。
輸出格式:
按照如下格式輸出,x代表要找的錢總數,?代表每種面額所需的數量。x = ?*10 + ?*5 + ?*1
注意:=
與+
左右均有空格。
輸入樣例:
5
109
17
10
3
0
輸出樣例:
109 = 10*10 + 1*5 + 4*1
17 = 1*10 + 1*5 + 2*1
10 = 1*10 + 0*5 + 0*1
3 = 0*10 + 0*5 + 3*1
0 = 0*10 + 0*5 + 0*1
n=int(input()) for i in range(n): a=int(input()) a1=a//10 a2=(a-a1*10)//5 a3=(a-a1*10-a2*5) print("{} = {}*10 + {}*5 + {}*1".format(a,a1,a2,a3))
小明在幫老師處理數據,這些數據的第一行是n,代表有n行整數成績需要統計。
接着連續輸入n個成績,如果中途輸入錯誤(非整數
)提示'Error! Reinput',
並輸出錯誤的數據。然后重新輸入,直到輸入n個正確的成績才退出。如果整個
輸入過程中沒有錯誤數據,提示'All OK'。最后輸出所有學生的平均值,保留兩
位小 數。
注:該程序可以適當處理小錯誤,比如對於有些數據如果左右包含空格,先去掉
空格再行處理。
輸入格式:
第一行為n,代表接下來要輸入的正確行數。
然后輸入成績,輸入錯誤則提示重輸,直到輸入n行正確的數據為止。
輸出格式:
如果輸入過程中無異常,需輸出All OK
。
輸入樣例1:
3
1
2
3
輸出樣例1:
All OK
avg grade = 2.00
輸入樣例2:
3
1
#
b
2
3
輸出樣例2:
Error for data #! Reinput
Error for data b! Reinput
avg grade = 2.00
n=int(input()) sum=0 flag=0 temp=n while n>0: a=0 a=input() try: a=int(a) sum=sum+a n-=1 except: print("Error for data {}! Reinput".format(a)) flag+=1 #n+=1) if flag==0: print("All OK") print("avg grade = {:.2f}".format(sum/temp))
小明在幫助老師統計成績,老師給他的是一組數據。數據的第1行代表學生數n,后面
的n行代表每個學生的成績。成績是整數類型。小明編寫了一個程序,該程序可以批量
處理數據,統計所有學生的平均分。當數據沒有任何錯誤時,提示'All OK',當數據有
一些錯誤(某行是浮點數、某行是非整數字符)時,可以提示哪些數據出錯,並最后提示
第幾行出錯,出錯的原因,共出錯多少行。對於另一些小錯誤,如某行雖然是整數,但
是左右有多余的空格,可以將空格去除掉進行正常統計。
在最后輸出:
共處理多少行數據,幾行正確,幾行錯誤,平均成績(保留兩位小數)。
進階要求:
有可能碰到要求輸入n行,后面的數據卻小於n行。要求處理這種情況。碰到這種情況。
輸出end of files
,並統計現有行數。見樣例3
輸入格式:
第1行為n
接下來輸入<=n行數據進行測試
輸出格式:
見樣例輸出。輸出錯誤原因的時候,需要將整行輸出(如果該行有左右空格,需要將左右空格也輸出)
輸入樣例1:
3
1
2
3
輸出樣例1:
Total: 3
OK: 3
Error: 0
avg grade = 2.00
輸入樣例2:
5
1
2
a
b 5
3
輸出樣例2:
line 3 error for input " a "
line 4 error for input " b 5"
Total: 5
OK: 3
Error: 2
avg grade = 2.00
輸入樣例3:
5
a
2
3
輸出樣例3:
line 1 error for input " a"
end of files
Total: 3
OK: 2
Error: 1
avg grade = 2.50
提示:對於樣例3,如果是在IDLE中進行測試,可在輸入最后一行並回車后,按'Ctrl+D'結束輸入。
n=int(input()) sum=0 flag=0 temp=n count=0 count1=0 l=[] while True: try: l.append(input()) except: break for i in range(len(l)): count+=1 a=0 a=l[i] try: a=int(a) sum=sum+a count1+=1 except: print('line {} error for input "{}"'.format(count,a)) flag+=1 #if flag==0: #print("All OK") if count<n: print("end of files") print("Total: {}".format(len(l))) print("OK: {}".format(count1)) print("Error: {}".format(flag)) print("avg grade = {:.2f}".format(sum/count1))
小明在幫老師處理數據,這些數據的第一行是n,代表有n行整數成績需要統計。
數據沒有錯誤,則計算平均值(保留2位小數)並輸出。
數據有錯誤,直接停止處理,並且不進行計算。
注:該程序可以適當處理小錯誤,比如對於有些數據如果左右包含空格,先去掉
空格再行處理。
輸入格式:
第一行為n,代表接下來輸入的行數。
然后輸入n行成績。
輸出格式:
注1:如果輸入過程中均未出現異常,則要輸出All OK
。
注2:不管輸入過程中有無出現異常,都要輸出Process Completed
輸入樣例1:
3
1
2
3
輸出樣例1:
All OK
Process Completed
avg grade = 2.00
輸入樣例2:
3
a b
輸出樣例2:
Error for data " a b"! Break
Process Completed
輸入樣例3:
3
1
a
輸出樣例3:
Error for data "a"! Break
Process Completed
s=int(input()) sum=0 count=0 c=0 for i in range(s): a=input("") b=a.strip() flag=0 for j in b: if j not in ['0','1','2','3','4','5','6','7','8','9']: flag+=1 if flag==0: sum=sum+eval(b) else: c=a count+=1 break if count==0: print("All OK") print("Process Completed") print("avg grade = {:.2f}".format(sum/s)) else: print("Error for data \"{}\"! Break".format(c)) print("Process Completed")
輸入一行字符串,然后對其進行如下處理。
輸入格式:
字符串中的元素以空格或者多個空格分隔。
輸出格式:
逆序輸出字符串中的所有元素。
然后輸出原列表。
然后逆序輸出原列表每個元素,中間以1個空格分隔。注意:最后一個元素后面不能有空格。
輸入樣例:
a b c e f gh
輸出樣例:
ghfecba
['a', 'b', 'c', 'e', 'f', 'gh']
gh f e c b a
s=input().split() print("".join(s[::-1])) print(s) print(" ".join(s[::-1]))
輸入a,b班的名單,並進行如下統計。
輸入格式:
第1行::a班名單,一串字符串,每個字符代表一個學生,無空格,可能有重復字符。
第2行::b班名單,一串字符串,每個學生名稱以1個或多個空格分隔,可能有重復學生。
第3行::參加acm競賽的學生,一串字符串,每個學生名稱以1個或多個空格分隔。
第4行:參加英語競賽的學生,一串字符串,每個學生名稱以1個或多個空格分隔。
第5行:轉學的人(只有1個人)。
輸出格式
特別注意:輸出人員名單的時候需調用sorted函數,如集合為x,則print(sorted(x))
輸出兩個班級的所有人員數量
輸出兩個班級中既沒有參加ACM,也沒有參加English的名單和數量
輸出所有參加競賽的人員的名單和數量
輸出既參加了ACM,又參加了英語競賽的所有人員及數量
輸出參加了ACM,未參加英語競賽的所有人員名單
輸出參加英語競賽,未參加ACM的所有人員名單
輸出參加只參加ACM或只參加英語競賽的人員名單
最后一行:一個同學要轉學,首先需要判斷該學生在哪個班級,然后更新該班級名單,並輸出。如果沒有在任何一班級,什么也不做。
輸入樣例:
abcdefghijab
1 2 3 4 5 6 7 8 9 10
1 2 3 a b c
1 5 10 a d e f
a
輸出樣例:
Total: 20
Not in race: ['4', '6', '7', '8', '9', 'g', 'h', 'i', 'j'], num: 9
All racers: ['1', '10', '2', '3', '5', 'a', 'b', 'c', 'd', 'e', 'f'], num: 11
ACM + English: ['1', 'a'], num: 2
Only ACM: ['2', '3', 'b', 'c']
Only English: ['10', '5', 'd', 'e', 'f']
ACM Or English: ['10', '2', '3', '5', 'b', 'c', 'd', 'e', 'f']
['b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
ac=input() bc=input() acm=input() eng=input() zz=input() as1=set(ac) bs1=set(bc.split()) acm2=set(acm.split()) eng2=set(eng.split()) print('Total: '+str(len(as1)+len(bs1))) notrace=list() for i in as1: if i not in acm2 and i not in eng2: notrace.append(i) for i in bs1: if i not in acm2 and i not in eng2: notrace.append(i) print("Not in race: "+str(sorted(notrace))+", num: "+str(len(notrace))) alltrace=list() for i in as1: if i in acm2 or i in eng2: alltrace.append(i) for i in bs1: if i in acm2 or i in eng2: alltrace.append(i) print("All racers: "+str(sorted(alltrace))+", num: "+str(len(alltrace))) both=list() for i in as1: if i in acm2 and i in eng2: both.append(i) for i in bs1: if i in acm2 and i in eng2: both.append(i) print("ACM + English: "+str(sorted(both))+", num: "+str(len(both))) acm3=list() for i in as1: if i in acm2 and i not in eng2: acm3.append(i) for i in bs1: if i in acm2 and i not in eng2: acm3.append(i) print("Only ACM: "+str(sorted(acm3))) eng3=list() for i in as1: if i not in acm2 and i in eng2: eng3.append(i) for i in bs1: if i not in acm2 and i in eng2: eng3.append(i) print("Only English: "+str(sorted(eng3))) dd=eng3+acm3 print('ACM Or English: '+str(sorted(dd))) if zz in as1: new=list(as1) new.remove(zz) print(sorted(new)) elif zz in bs1: new=list(bs1) new.remove(zz) print(sorted(new))
-27 jmu-python-分段函數&數學函數 (15 分)
本題要求計算下列分段函數f(x)的值(x為從鍵盤輸入的一個任意實數):
輸入格式:
直接輸入一個實數x
輸出格式:
在一行中按“f(x)=result”的格式輸出,其中x與result都保留三位小數。
輸入樣例:
3.14
輸出樣例:
f(3.140)=0.865
import math a=float(input()) sum=0 if a>=1: sum=(math.cos(a)+a*a)/(2.5+abs(a+math.log(100,math.e))) elif a<=-1: sum=math.e**a else: sum=math.sqrt(2-2*a) print("f({:.3f})={:.3f}".format(a,sum))
在一行中輸入列表,輸出列表元素的和。
輸入格式:
一行中輸入列表。
輸出格式:
在一行中輸出列表元素的和。
輸入樣例:
[3,8,-5]
輸入樣例:
6
l=[] sum=0 a=eval(input()) for i in a: sum+=i print(sum)
輸入一個嵌套列表,嵌套層次不限,根據層次,求列表元素的加權和。第一層每個元素 的值為:元素值*1,第二層每個元素的值為:元素值*2,第三層每個元素的值為:元素值*3, ...,以此類推!
輸入格式:
在一行中輸入列表
輸出格式:
在一行中輸出加權和
輸入樣例:
在這里給出一組輸入。例如:
[1,2,[3,4,[5,6],7],8]
輸出樣例:
在這里給出相應的輸出。例如:
72
a=input() b=a a=a.replace('[','') a=a.replace(']','') a=a.split(',') #print(a) count=0 sum=0 j=0 for i in range(len(b)): if b[i]=='[': count+=1 elif b[i]==']': count-=1 elif b[i]==',': continue elif b[i+1]==','or b[i+1]==']': sum+=int(a[j])*count j+=1 print(sum)
輸入一個字符串 str,再輸入要刪除字符 c,大小寫不區分,將字符串 str 中出現的所有字符 c 刪除。
輸入格式:
在第一行中輸入一行字符 在第二行輸入待刪除的字符
輸出格式:
在一行中輸出刪除后的字符串
輸入樣例:
在這里給出一組輸入。例如:
Bee
E
輸出樣例:
在這里給出相應的輸出。例如:
result: B
n=input().strip() a=input().strip() n=n.replace(a.lower(),'') n=n.replace(a.upper(),'') print("result: {}".format(n))
隨機輸入一個字符串,把最左邊的10個不重復的英文字母(不區分大小寫)挑選出來。 如沒有10個英文字母,顯示信息“找不到10個不重復的英文字母”
輸入格式:
在一行中輸入字符串
輸出格式:
在一行中輸出最左邊的10個不重復的英文字母或顯示信息“not found"
輸入樣例1:
在這里給出一組輸入。例如:
poemp134
輸出樣例1:
在這里給出相應的輸出。例如:
not found
輸入樣例2
在這里給出一組輸入。例如:
This is a test example
輸出樣例2:
在這里給出相應的輸出。例如:
Thisaexmpl
a=input() a=a.split() c=''.join(a) d=list(set(list(c))) count=0 m=0 d.sort(key=c.index) for i in range(len(d)): if 'a'<=d[i]<='z' or 'A'<=d[i]<='Z': count+=1 if count<10: print("not found") else: for i in range(len(d)): if m!=10 and 'a'<=d[i]<='z' or 'A'<=d[i]<='Z': m+=1 print(d[i],end='')
圖的字典表示。輸入多行字符串,每行表示一個頂點和該頂點相連的邊及長度,輸出頂點數,邊數,邊的總長度。比如上圖0點表示:
{'O':{'A':2,'B':5,'C':4}}。用eval函數處理輸入,eval函數具體用法見第六章內置函數。
輸入格式:
第一行表示輸入的行數 下面每行輸入表示一個頂點和該頂點相連的邊及長度的字符串
輸出格式:
在一行中輸出頂點數,邊數,邊的總長度
輸入樣例:
在這里給出一組輸入。例如:
4
{'a':{'b':10,'c':6}}
{'b':{'c':2,'d':7}}
{'c':{'d':10}}
{'d':{}}
輸出樣例:
在這里給出相應的輸出。例如:
4 5 35
n=int(input()) num=0 sum=0 for i in range(n): dic=eval(input()) for j in dic: temp=dic[j] for key in temp: num+=1 sum+=temp[key] print("{} {} {}".format(n,num,sum))
字典合並。輸入用字符串表示兩個字典,輸出合並后的字典,字典的鍵用一個字母或數字表示。注意:1和‘1’是不同的關鍵字!
輸入格式:
在第一行中輸入第一個字典字符串 在第二行中輸入第二個字典字符串
輸出格式:
在一行中輸出合並的字典,輸出按字典序。"1"的ASCII嗎為49,大於1,排序時1在前,"1"在后,其它的也一樣。
輸入樣例1:
在這里給出一組輸入。例如:
{1:3,2:5}
{1:5,3:7}
輸出樣例1:
在這里給出相應的輸出。例如:
{1:8,2:5,3:7}
輸入樣例2:
在這里給出一組輸入。例如:
{"1":3,1:4}
{"a":5,"1":6}
輸出樣例2:
在這里給出相應的輸出。例如:
{1:4,"1":9,"a":5}
a=dict(eval(input())) b=dict(eval(input())) for i in b: if i not in a: a[i]=b[i] else: a[i]+=b[i] print("{",end="") s1=[i for i in a.keys() if type(i)==type(1)] s2=[i for i in a.keys() if type(i)==type('a')] s1.sort() s2.sort() c=0 n=len(a) for i in s1+s2: c+=1 if type(i)==type(1): print("{}:{}".format(i,a[i]),end='') else: print('"{}":{}'.format(i,a[i]),end='') if c!=n: print(',',end='') print("}")