OJ程式設計Python3筆試技巧小結

2021-09-24 13:24:57 字數 3149 閱讀 9414

示例1

有多組輸入資料,但沒有具體的告訴你有多少組,只是讓你對應每組輸入,應該怎樣輸出

while true:

try:

a, b = map(int, input().strip().split())

print(a+b),

except eoferror:

break

示例2

輸入乙個整數,告訴我們接下來有多少組資料,對應每組輸入,應該怎樣輸出

ncase = int(input().strip())

for case in range(ncase):

a, b = map(int, input().strip().split())

print(a + b,)

示例3

有多組輸入資料,沒有具體的告訴你有多少組,但是題目卻告訴你遇見什麼結束

while true:

a, b = map(int, input().strip().split())

if a == 0 and b == 0:

break

print(a+b,)

示例4

這次的輸入實現輸入乙個整數,告訴我們有多少行;在輸入每一行,對於每一行的輸入,有劃分為第乙個數和其他的數.第乙個數代表那一組資料一共有多少輸入。

ncase = int(input().strip())

for case in range(ncase):

data = list(map(int, input().strip().split()))

n, array = data[0], data[1:]

sum = 0

for i in range(n):

sum += array[i]

print(sum)

示例5

多行輸入,以逗號分隔,無視空格

輸入:1,2,3 , 6 , 8

1 , 2

5輸出:

[1, 2, 3, 6, 8, 1, 2, 5]

import sys

nums=

while true:

line=sys.stdin.readline()

if line == "\n":break

line=line.strip().split(",")

nums.extend(map(int,line))

print(nums)

示例6

t行輸入

t=int(input().strip())

list=

for i in range(t):

n,k=[int(j) for j in input().strip().split(" ")]

一般就是用print列印或逐行列印

函式或方法

功能min(list) ,max(list)

返回列表最大值,最小值

sum(list)

列表求和

map(function,list)

以引數序列中的每乙個元素呼叫 function 函式,返回包含每次 function 函式返回值的新列表

list.index(value)

返回第乙個值為value的元素索引

list.remove(value)

刪除第乙個值為value的元素

list.sort(key=lambda x: x[0])

二維陣列用於以行首元素排序,預設是公升序,加個符號變降序,可做多級排序

list.reverse()

翻轉列表

sorted()

不在本地做排序

value in list

value是否為列表中的乙個元素

def square(x) :            # 計算平方數

return x ** 2

list(map(square, [1,2,3,4,5])) # 計算列表各個元素的平方

# [1, 4, 9, 16, 25]

list(map(lambda x: x ** 2, [1, 2, 3, 4, 5])) # 使用 lambda 匿名函式

# [1, 4, 9, 16, 25]

# 提供了兩個列表,對相同位置的列表資料進行相加

list(map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]))

# [3, 7, 11, 15, 19]

函式或方法

功能dict.keys()

字典的key列表

dict.values()

字典的values列表

dict.items()

鍵值對元祖列表

函式或方法

功能str.strip()

去除首尾空格

str.strip(「a」)

去除首尾字元「a」(若有)

str.lower(), str.upper()

大小寫轉換

str.isdigit()

是否為數字

str.isalpha()

是否為字母

str.isalnum()

是否為數字或字母

str[:k]+str[k+1:]

去除第k個字元

str.replace(「a」,「b」, count)

用字元a替代str中前count個字元b

str.count(sub, start, end)

返回字串str中子串sub出現的次數

sub in str

判斷字串str是否包含子串sub,返回布林值

str,find(sub, start, end)

搜尋字串str中是否包含子串sub,如果包含,則返回sub的索引位置,否則返回"-1"

str.split(sep=none)

根據sep分割字串str,並返回乙個列表

str.join(iterable)

將可迭代物件(iterable)中的字串使用s連線起來。注意,iterable中必須全部是字串型別,否則報錯

筆試程式設計題 2012 3 22筆試

乙個筆試題目 n個人圍成乙個圈,第乙個人從1開始遞增報數,凡是報到3的倍數 包括3 時,該人退出,隨後的人接著再繼續報數,直到最後只剩下乙個人為止,求最後剩下的這個人在原對中的編號。思路 用陣列儲存n個人,開始陣列元素全部初始化為1,表示所有的人都在隊中,然後迴圈遍歷陣列,凡是遇到能整除3的位置的元...

360筆試 3 18 程式設計題

1.給乙個半徑為r的圓,圓心是 0,0 開始位於 r,0 分別求從始點順時針和逆時針走長度為l的終點座標 有可能走多圈,先處理成走一圈的形式,然後判是不是四個斷點,如果是則輸出 然後把l處理到第一象限,與x軸形成的夾角是l r,y點座標就是 那麼 includeusing namespace std...

網易2018筆試 路燈個數 Python

encoding utf 8 別人 改的 小q 正在給一條長度為 n的道路設計路燈安置方案。為了讓問題更簡單,小 q把道路視為 n個方格 需要照亮的地方用 表示 不需要照亮的障礙物格仔用 x 表示。小q 現在要在道路上設定一些路燈 對於安置在 pos位置的路燈 這盞路燈可以照亮 pos 1,pos,...