Python入門 —— 用pycharm寫一個簡單的小程序3

環境:Win10操做系統;Python3.7;Pycharm python

題目來源:PTA編程

編程實例1:日期格式化

世界上不一樣國家有不一樣的寫日期的習慣。好比美國人習慣寫成「月-日-年」,而中國人習慣寫成「年-月-日」。下面請你寫個程序,自動把讀入的美國格式的日期改寫成中國習慣的日期。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

  • str -- 分隔符,默認爲全部的空字符,包括空格、換行(\n)、製表符(\t)等。
  • num -- 分割次數。默認爲 -1, 即分隔全部。

編程實例2:整數四則運算

本題要求編寫程序,計算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, ...)

  • 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%

編程實例3:計算各對應位乘積之和

讀入兩個整數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)

編程實例4:求出歌手的得分

輸入一個正整數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]

編程實例5:刪除字符

輸入一個字符串 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]);

  •  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!

編程實例6:jmu-python-統計成績

輸入一批學生成績,計算平均成績,並統計不及格學生人數。

輸入格式:

每行輸入一個數據,輸入數據爲負數結束輸入

輸出格式:

平均分=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("沒有學生")

編程實例7:jmu-python-重複元素斷定

每個列表中只要有一個元素出現兩次,那麼該列表即被斷定爲包含重複元素。
編寫函數斷定列表中是否包含重複元素,若是包含返回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'}
相關文章
相關標籤/搜索