牛客網OJ系統Python輸入輸出處理

剛開始在牛客網上做編程題,真的是崩潰,才發現連輸入都不太會處理,作爲一個整理狂,幹啥都想要整理起來。以下是我在做題過程中遇見的幾種輸入情況以及處理方式,另外,本人超級喜歡用list,對於各種輸入都想處理成list格式(持續更新)。

輸入的處理

1. 對於一行輸入多個的情況

例如:[[1,2],[2,3]],4:
方法一:
L = list(eval(input()))
array = L[0]
target = L[1]
方法二:
target, array = input().split(’,’, 1)
target = int(target)
array = list(eval(array))

方法三:
import sys
a = sys.stdin.readline().strip()
b = sys.stdin.readline().strip()
strip()方法只能用於移除字符串 開頭和結尾 指定的字符(默認爲空格或換行符)或字符序列。
例如:
str = ’ abcd0e ’
print(str.strip())
輸出:abcd0e
print(str.strip(‘0’))
輸出: abcde

這裏補充下split()的用法:
默認以空格切分,split(’’,1)表示分成兩塊,例如:
str = “Line1-abcdef \nLine2-abc \nLine4-abcd”;
print str.split( ); # 以空格爲分隔符,包含 \n
print str.split(’ ', 1 ); # 以空格爲分隔符,分隔成兩個
結果:
[‘Line1-abcdef’, ‘Line2-abc’, ‘Line4-abcd’]
[‘Line1-abcdef’, ‘\nLine2-abc \nLine4-abcd’]

2. 對於先輸入個數n ,後輸入n個數的情況(用循環)

例如:
輸入個數4,接着輸入4個數
4
2
2
1
3
代碼:
n = int(input())
li = []
for i in range(n):
b = int(input())
li.append(b)

另外一種情況:
輸入個數4,接着輸入4組數

3.對於含有空格的一行數的輸入

例如:
輸入2 4 5 8 9這樣的
代碼:
如果僅僅只是input().split()
得到:[‘2’,‘4’,‘5’,‘8’,‘9’]
li = list(map(int,input.split()))
得到:
[2,4,5,8,9]

4.保證list裏面的數全爲整數

代碼:
b=[‘1’,2,‘4’]
b = [int(i) for i in b]
print(b)
結果:
[1,2,4]

輸出的處理

1.對於[‘1’,‘2’,‘3’,‘4’]這樣的格式要求變成1 2 3 4 5

代碼:
a= [‘1’,‘2’,‘3’,‘4’]
print(’ ‘.join(a))
若要求輸出格式爲1,2,3,4
print(’,’).join(a)

2.對於循環輸出多個數,兩個數之間用空格隔開

代碼:
for i in range(n):
print(xxxx,end=’ ')

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章