PTA中提交Python3程式的一些套路

2022-06-29 20:45:08 字數 3846 閱讀 5587

while

true:

raw =input()

if raw == ''

:

break

print(sum(map(int, raw.split())))

pta檢查答案正確與否是通過字串匹配實現的。所以可能有以下幾種原因:

格式錯誤:程式的輸出要與題目中的樣例輸出格式一樣(輸出內容根據執行結果不同而變化),程式輸出的結果多乙個空格、少乙個空格,都不行。

比如輸出樣例為1 + 2 = 3,你的輸出卻是1+2=3,錯誤原因分析:在+=兩邊少了相應的空格,在3後面卻多了空格。

input()中填寫了提示資訊

不要在input中填寫提示資訊!需要獲取輸入的地方只要input()就可以了。以下**是錯誤的,x = input("請輸入"),請改為'x = input()'

你的答案真的錯了(請仔細對比,包括大小寫、空格等)或者題目錯了(小概率)。

**有語法錯誤

針對這種問題,請先在idle中把程式除錯好以後再提交。

**中多出不必要的input()

多寫了input(),但卻沒有相應的輸入,就會產生錯誤。比如樣例輸入只要求輸入1行,但**中卻有2個input()

pta中的python3無法正確處理中文字元,所以任何時候,提交的**中都不要出現中文。

新建題時不要在輸入、輸出檔案包含中文。

print('你要輸出的內容')
a = 1.111

b = 2.222

print('{} + {} = '.format(a,b,a+b))

輸出:1.111 + 2.222 = 3.33

注1:這裡的為保留兩位小數。

注2:這裡面的輸出+=兩旁均有空格。

print函式直接換行,如果想不換行要加上end=""

print("1", end="")

print("2", end="")

print("3")

print("4")

輸出:

123

4

另一種處理方式:

line = "a"

line = line + "\r\n" #加乙個回車換行

line = line + "cde" #也可以使用line += "cde"

print(line)

輸出:

ab

cde

在python中統一使用line = input()來處理輸入,line為輸入的一行字串。

如果想要將其轉換為數值型別,可以使用int,float,eval函式,比如:

line = input()

x = int(line) #將line轉化為整數型別

y = float(line) #將line轉化為浮點數型別

z = eval(line) #將line轉化為表示式型別並運算

#也可簡寫為如下形式

x = int(input(line))

有如下輸入樣例:

3105

-10

第一行的3代表下面要輸入3行,每行放乙個數,如何獲取每行的值呢

n = int(input()) #從第一行獲取`3`這個字串然後轉化為整數賦值給n

for i in range(n): #迴圈n次

x = int(input())

print(x+1)

使用字串的split()函式

比如輸入1 22 33 5,如何獲得其中的1 22 33 5這幾個數?例子:

line = input()                #使用者輸入"1 22  33      5"

nums = line.split()

print(nums[0],nums[1],nums[2],nums[3])

輸出:

1 22 33 5

注意:

現在nums中存放的元素均是字串,如果要進行數值計算必須先轉換。

例題:

從控制台讀入兩個數,然後將其相加輸出。

輸入:1 2

輸出:3

處理方法1:

nums = input().split()  #將一行字串中以1個或多個空格分隔的元素取出放入列表。

print(int(nums[0])+int(nums[1])) #int將字元轉化為整數

處理方法2:

ls = [int(x) for x in input().split()] #列表推導式

print(sum(ls))

split函式還可以指定分隔符,比如要將1,2,3,4,56中以,分隔的字串取出來?可以使用如下**:

strs = '1,2,3,4,56'.split(",")

print(strs)

例題:

下面有若干行(具體幾行不確定),每行代表乙個整數。

編寫乙個程式,將所有的數相加,然後輸出結果。

輸入:123

輸出:6

處理方法

x = 0

while true:

try:

x += int(input())

except:

break

print(x)

如何在idle中測試上述程式?

執行程式以後,在每一行輸入對應的數字,按ctrl+d結束輸入。

python3小練習pta分享碼:

1a831b0e3a855ffe,老師可通過此分享碼在自建題集中將題目匯入。

或者直接在題庫中搜尋jmu-python,就可以找到我們建立的python題目。

Python3 登陸程式

user 1 設計乙個登陸程式,不同的使用者名稱和對應密碼存在乙個字典裡,輸入正確的使用者名稱和密碼去登陸 2 首先輸入使用者名稱,如果使用者不存在或者空,則提示請輸入正確的使用者名稱 3 當使用者名稱正確時,提示輸入密碼,如果密碼和使用者名稱不對應,則提示密碼錯誤,請重新輸入 4 如果密碼超過3次...

python3 切片 python3 切片

取乙個list或tuple的部分元素是非常常見的操作。比如,乙個list如下 l michael sarah tracy bob jack 取前3個元素,應該怎麼做?笨辦法 l 0 l 1 l 2 michael sarah tracy 之所以是笨辦法是因為擴充套件一下,取前n個元素就沒轍了。取前n...

Python3學習(五) 從字串中提取數字

1.使用正規表示式,用法如下 總結 匹配字串的開始。匹配字串的結尾。b 匹配乙個單詞的邊界。d 匹配任意數字。d 匹配任意非數字字元。x?匹配乙個可選的 x 字元 換言之,它匹配 1 次或者 0 次 x 字元 x 匹配0次或者多次 x 字元。x 匹配1次或者多次 x 字元。x 匹配 x 字元,至少 ...