環境:Win10操做系統;Python3.7;Pycharm python
題目來源:PTA編程
世界上不一樣國家有不一樣的寫日期的習慣。好比美國人習慣寫成「月-日-年」,而中國人習慣寫成「年-月-日」。下面請你寫個程序,自動把讀入的美國格式的日期改寫成中國習慣的日期。app
輸入在一行中按照「mm-dd-yyyy」的格式給出月、日、年。題目保證給出的日期是1900年元旦至今合法的日期。函數
在一行中按照「yyyy-mm-dd」的格式給出年、月、日。測試
03-15-2017
spa
2017-03-15
操作系統
str = input() mm = str.split("-",2)[0] dd = str.split("-",2)[1] yy = str.split("-",2)[2] date = yy+"-"+mm+"-"+dd print(date)
split()方法:code
str.split(str="", num=string.count(str)).orm
本題要求編寫程序,計算2個正整數的和、差、積、商並輸出。題目保證輸入和輸出所有在整型範圍內。blog
輸入在一行中給出2個正整數A和B。
在4行中按照格式「A 運算符 B = 結果」順序輸出和、差、積、商。
3 2
3 + 2 = 5
3 - 2 = 1
3 * 2 = 6
3 / 2 = 1
方法1:
a,b = map(int,input().split()) print("{} + {} = {}".format(a,b,a+b)) print("{} + {} = {}".format(a,b,a-b)) print("{} * {} = {}".format(a,b,a*b)) print("{} / {} = {}".format(a,b,a//b))
方法2:
A,B = map(int, input().split()) c = str(A) d = str(B) print(c+" + "+d+" =",A+B); print(c+" - "+d+" =",A-B); print(c+" * "+d+" =",A*B); print(c+" / "+d+" =",A//B);
map()方法:
會根據提供的函數對指定序列作映射。
第一個參數 function 以參數序列中的每個元素調用 function 函數,返回包含每次 function 函數返回值的新列表。
map(function, iterable, ...)
format方法:
Python2.6 開始,新增了一種格式化字符串的函數 str.format(),它加強了字符串格式化的功能。
基本語法是經過 {} 和 : 來代替之前的 % 。
format 函數能夠接受不限個參數,位置能夠不按順序。
舉個栗子:
print("{}{}".format(" hello ", " world ")) #一一對應,輸出 hello world print("{0}{1}".format(" hello ", " world ")) #輸出 hello world print("{1}{0}".format(" hello ", " world ")) #設置指定位置,輸出 world hello print("{0}{0}{1}".format(" hello ", " world ")) #設置指定位置,輸出 hello hello world
format另外一個經常使用用法是分割字符串
print('{:.2f}'.format(11.25555)) #表示保留兩位小數,輸出11.26 print('{:.2%}'.format(0.1125555)) #表示轉化爲保留兩位小數的百分位數,輸出11.26%
讀入兩個整數a和b,輸出絕對值a和絕對值b的各對應位乘積之和,如a=1234,b=608,則輸出值爲:「1×0+2×6+3×0+4×8「的值,即44。
輸入格式:
在一行中輸入兩個數
在一行中輸出對應位乘積之和
在這裏給出一組輸入。例如:
1234 608
在這裏給出相應的輸出。例如:
44
a,b = map(int,input().split()) a = abs(a) b = abs(b) a = str(a) b = str(b) sum = 0 if len(a)>len(b): for i in range(0,len(b)): sum = sum + int(a[i+len(a)-len(b)])*int(b[i]) if len(a)<len(b): for i in range(0,len(a)): sum = sum + int(b[i+len(b)-len(a)])*int(a[i]) if len(a)==len(b): for i in range(0,len(a)): sum = sum + int(a[i])*int(b[i]) print(sum)
輸入一個正整數n (n>4),再輸入n個實數,求出歌手的得分(保留2位小數)。設一歌唱評獎晚會上有n(n>4)個評委爲歌手打分.評分規則:每一個評委依次打分,再去掉2個最高分和2個最低分,計算餘下的分數平均值爲歌手的得分.
在第一行中輸入n 在第二行中輸入n個分數
在一行中輸出平均分數
在這裏給出一組輸入。例如:
10
10 10 9 9 9 8 8 8 7 7
在這裏給出相應的輸出。例如:
aver=8.50
n = input() num = [int(n) for n in input().split()] num.sort() for i in range(0,4): num.pop() num.reverse() sum = 0 for j in range(len(num)): sum += num[j] aver = sum/len(num) print("{:.2f}".format(aver))
import numpy as np n = input() num = [int(n) for n in input().split()] num.sort() for i in range(0,4): num.pop() num.reverse() sum = 0 for j in range(len(num)): sum += num[j] #可使用numpy自帶的均值函數 avg = np.mean(num) print("{:.2f}".format(avg))
reverse()方法:
將表中的元素反向存儲
pop()方法:
Python 字典 pop() 方法刪除字典給定鍵 key 及對應的值,返回值爲被刪除的值。key 值必須給出。 不然,返回 default 值。
pop(key[,default])
key: 要刪除的鍵值
default: 若是沒有 key,返回 default 值
注意1:在調用pop函數後,會對原來的列表產生影響,也就是說,pop函數刪除的是原列表的值
舉個栗子:
num = [1,2,3,4,5] num.pop() print(num) #輸出[1, 2, 3, 4]
注意2:pop函數里加入不一樣的值結果是不一樣的,默認列表中的元素首位標號爲0,末尾元素爲-1,依次類推
舉個栗子:
num = [1,2,3,4,5] num.pop(-1) print(num)#輸出[1, 2, 3, 4] num.pop(0) print(num)#輸出[2, 3, 4]
輸入一個字符串 str,再輸入要刪除字符 c,大小寫不區分,將字符串 str 中出現的全部字符 c 刪除。
在第一行中輸入一行字符 在第二行輸入待刪除的字符
在一行中輸出刪除後的字符串
在這裏給出一組輸入。例如:
Bee E
在這裏給出相應的輸出。例如:
result: B
str = list(input().strip()) x = input().strip() s = [i for i in str if not(i.lower() == x or i.upper() == x)] print(s) print('result: %s' %''.join(s).strip())
strip()方法:
Python strip() 方法用於移除字符串頭尾指定的字符(默認爲空格或換行符)或字符序列。
注意:該方法只能刪除開頭或是結尾的字符,不能刪除中間部分的字符。
str.strip([chars]);
舉個栗子:
str = "123abcrunoob321" print (str.strip( '12' )) # 字符序列爲 12,輸出3abcrunoob3 str1 = " 123456 " print(str1.strip()) #輸出123456,無首位空格
lower()方法與upper()方法:
Python lower() 方法轉換字符串中全部大寫字符爲小寫。 python upper()方法轉換字符串中全部小寫字符爲大寫
舉個栗子:
str = "hello!" print (str.upper()) # 輸出HELLO! str1 = "HELLO!" print(str1.lower()) #輸出hello!
輸入一批學生成績,計算平均成績,並統計不及格學生人數。
每行輸入一個數據,輸入數據爲負數
結束輸入
平均分=XX,不及格人數=XX
,其中XX
表示對應數據。若是沒有學生數據,輸出沒有學生
30
50
70
80
90
20
-1
平均分=56.67,不及格人數=3
a = float(input()) list = [] sum = a list.append(a) count = 1 if a >= 0: while 1: a = float(input()) if a < 0: break list.append(a) sum = a + sum count = count + 1 print("平均分={:.2f},不及格人數=".format(sum / count), end="") n = 0 for i in list: if i < (sum / count): n = n + 1 print("%d" % n) else : 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): a = input() a = list(a.split()) if len(list(a)) == len(set(a)): f += 1 else: t += 1 print('True=%d, False=%d' %(t,f))
set()方法:
set() 函數建立一個無序不重複元素集,可進行關係測試,刪除重複數據,還能夠計算交集、差集、並集等。
舉個栗子:
x = set('aaabbc') print(x) #輸出{'a', 'c', 'b'} y = set('abcddee') print(y) #輸出{'d', 'c', 'b', 'a', 'e'} print(set(x&y)) #輸出{'a', 'b', 'c'} print(set(x|y)) #輸出{'d', 'a', 'c', 'b', 'e'} print(set(y-x)) #輸出{'d', 'e'}