python3在線編程輸入輸出總結

A+B

類型一:多組輸入,組數未知

輸入:輸入包括兩個正整數a,b(1 <= a, b <= 10^9),輸入數據包括多組。
輸出:輸出a+b的結果
解讀:一行是一組輸入,有多行輸入,輸出有多行輸出

# eg:
# 輸入
1 5
3 4
# 輸出
6
7

法1:使用sys

import sys
for line in sys.stdin:
	# strip()不帶參數,默認是清除兩邊的空白符
	# split()通過指定分隔符對字符串進行切片,默認以空格爲分隔符
    a = line.strip().split()
    a = [int(x) for x in a]
    print(sum(a))

– strip()函數詳解.
– split()函數詳解.
法2:使用內置函數

# 一行只有2個數
while True:
    try:
    # map(function, iterable, ...)
        a, b = map(int, input().strip().split())
        print(a + b)
    except EOFError:
        break
# 擴展:一行有多個數
while True:
    try:
        l = list(map(int, input().strip().split()))
        print(sum(l))
    except EOFError:
        break

map()函數詳解.

類型二:多組輸入,組數t已知

輸入:輸入第一行包括一個數據組數t(1 <= t <= 100);接下來每行包括兩個正整數a,b(1 <= a, b <= 10^9)
輸出:輸出a+b的結果
解讀:第一行是組數t,之後是多組輸入,輸出爲多行輸出

# eg:
# 輸入
2
1 5
3 4
# 輸出
6
7

法1:使用sys

import sys
# sys.stdin 當沒有接受到輸入結束信號就一直遍歷每一行
for line in sys.stdin:
    data = list(map(int,line.strip().split()))
    if len(data)==1:
        continue
    else:
        print(data[0]+data[1])

法2:使用內置函數

# 一行只有2個數
# 先輸入行數t,然後再進行其他編碼
t=int(input())
for i in range(t):
    a,b=map(int,input().split())
    print(a+b)
# 擴展:一行有多個數
t=int(input())
for i in range(t):
    l=list(map(int,input().strip().split()))
    print(sum(l))

類型三:多組輸入,有終止條件

輸入:輸入包括兩個正整數a,b(1 <= a, b <= 10^9),輸入數據有多組, 如果輸入爲0 0則結束輸入。
輸出:輸出a+b的結果
解讀:多行輸入,有終止條件,輸出爲多行輸出

# eg:
# 輸入
1 5
3 4
0 0
# 輸出
6
7

法1:使用sys

import sys
for line in sys.stdin:
    a = list(map(int, line.split()))
    if a == [0,0]:
        break
    print(sum(a))

法2:使用內置函數

# 一行只有2個數
# 添加終止條件
while True:
    n,m=map(int,input().strip().split())
    if n == 0 and m == 0:
        break
    print(n + m)
# 擴展:一行有多個數 方法和類型一、二里面的擴展思路一樣 用list()函數即可

類型四:多組輸入,有終止條件,每行個數已知

輸入:
輸入數據包括多組。
每組數據一行,每行的第一個整數爲整數的個數n(1 <= n <= 100), n爲0的時候結束輸入。
接下來n個正整數,即需要求和的每個正整數。
輸出:每組數據輸出求和的結果。
解讀:多組輸入,有終止條件,每行第一個數爲需要帶入計算的整數的個數

# eg:
# 輸入
4 1 2 3 4
5 1 2 3 4 5
0
# 輸出
10
15

法1:使用sys

# 使用readline()函數
import sys
 
while True:
    line = sys.stdin.readline().strip()
    if line == '0':
        break
    else:
        lista = list(map(int,line.split()))
        print(sum(lista[1:]))

– readline()函數詳解.
法2:使用內置函數

# 思路是讀取一行,然後將第一個數和後面的分開
while True:
    l = list(map(int, input().split()))
    if len(l) == 1 and l[0] == 0:
        break
    else:
        print(sum(l[1:]))

類別五:多組輸入,有組數t,求一系列和

輸入:
輸入的第一行包括一個正整數t(1 <= t <= 100), 表示數據組數。
接下來t行, 每行一組數據。
每行的第一個整數爲整數的個數n(1 <= n <= 100)。
接下來n個正整數, 即需要求和的每個正整數。
輸出:每組數據輸出求和的結果
解讀:多行輸入,有組數t,一行有多個數,求和;輸出爲多行輸出(是類型二的擴展)

# eg:
# 輸入
2
4 1 2 3 4
5 1 2 3 4 5
# 輸出
10
15

法1:使用sys

import sys
n = sys.stdin.readlines()
for i in n:
    tmp = list(map(int,i.strip().split()))
    if len(tmp) > 1:
        print(sum(tmp[1:]))

法2:使用內置函數

t=int(input())
for i in range(t):
    l=list(map(int,input().strip().split()))
    print(sum(l[1:]))

類型六:多組輸入,每行個數已知,一系列和

輸入:
輸入數據有多組, 每行表示一組輸入數據。
每行的第一個整數爲整數的個數n(1 <= n <= 100)。
接下來n個正整數, 即需要求和的每個正整數。
輸出:每組數據輸出求和的結果
解讀:多行輸入,無終止條件,輸出爲多行輸出

# eg:
# 輸入
4 1 2 3 4
5 1 2 3 4 5
# 輸出
10
15

法1:使用sys

import sys
for line in sys.stdin:
    lists = list(map(int, line.split()))
    print(sum(lists[1:]))

法2:使用內置函數

# 注意是否越界
while True:
    try:
        l=list(map(int,input().strip().split()))
        print(sum(l[1:]))
    except EOFError:
        break

類型六:多組輸入,一系列和

輸入:
輸入數據有多組, 每行表示一組輸入數據。
每行的第一個整數爲整數的個數n(1 <= n <= 100)。
接下來n個正整數, 即需要求和的每個正整數。
輸出:每組數據輸出求和的結果
解讀:多行輸入,無終止條件,輸出爲多行輸出

# eg:
# 輸入
1 2 3 4
1 2 3 4 5
0 0 0 0
# 輸出
10
15
0

法1:使用sys

import sys
for i in sys.stdin:
    l=list(map(int,i.strip().split()))
    print(sum(l))

法2:使用內置函數

while True:
    try:
        l=list(map(int,input().strip().split()))
        print(sum(l))
    except EOFError:
        break

字符串排序

類型一:一行字符串個數n,一行字符串

輸入:
輸入有兩行,第一行n
第二行是n個空格隔開的字符串
輸出:輸出一行排序後的字符串,空格隔開,無結尾空格

# eg:
# 輸入
5
c d a bb e
# 輸出
a bb c d e

法1:使用sys

import sys
first_line = sys.stdin.readline()
second_line = sys.stdin.readline()
strings = second_line.strip().split()
strings.sort()
st = ' '.join(strings)
print(st)

法2:使用內置函數

while True:
    try:
        n=int(input())
        mystr=list(map(str,input().strip().split()))
        mystr.sort()
        print(' '.join(mystr))
    except EOFError:
        break

類型二:多行字符串,空格分隔

輸入:
多個測試用例,每個測試用例一行。
每行通過空格隔開,有n個字符,n<100
輸出:對於每組測試用例,輸出一行排序過的字符串,每個字符串通過空格隔開

# eg:
# 輸入
a c bb
f dddd
nowcoder
# 輸出
a bb c
dddd f
nowcoder

法1:使用sys

import sys

for line in sys.stdin:
    lists = line.split()
    lists.sort()
    print(' '.join(lists))

法2:使用內置函數

while True:
    try:
        mystr=input().strip().split()
        mystr.sort()
        print(' '.join(mystr))
    except EOFError:
        break

類型三:多行字符串,逗號分隔

輸入:
多個測試用例,每個測試用例一行。
每行通過空格隔開,有n個字符,n<100
輸出:對於每組用例輸出一行排序後的字符串,用’,'隔開,無結尾空格

# eg:
# 輸入
a,c,bb
f,dddd
nowcoder
# 輸出
a,bb,c
dddd,f
nowcoder

法1:使用sys

# strip() 需要加上
import sys

for line in sys.stdin:
    lists = line.strip().split(',')
    lists.sort()
    print(','.join(lists))

法2:使用內置函數

while True:
    try:
        mystr=input().strip().split(',')
        mystr.sort()
        print(','.join(mystr))
    except EOFError:
        break
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章