如果你對(duì)python中的列表和元組的使用還不是很熟悉,這篇文章也許會(huì)提供一些幫助:
Python數(shù)據(jù)容器之列表(list)與元組(tuple)
7-1 sdut-ASCII碼排序
輸入N個(gè)字符后,按各字符的ASCII碼從小到大的順序輸出這N個(gè)字符。
輸入格式:
輸入數(shù)據(jù)有多組,每組占一行,有N個(gè)字符組成。
輸出格式:
對(duì)于每組輸入數(shù)據(jù),輸出一行,字符中間用一個(gè)空格分開(kāi)。
輸入樣例:
Input1231
qwe1321
asddsfadsfadsf
zxc1321132dsfa
abcABCDFdefgDEFGHIJhijakfdsadsf;dsa
輸出樣例:
1 1 2 3 I n p t u
1 1 2 3 e q w
a a a d d d d f f f s s s s
1 1 1 2 2 3 3 a c d f s x z
; A B C D D E F F G H I J a a a a b c d d d d e f f f g h i j k s s s
代碼:
try:
while True:
ls = list(input())
ls.sort()
print(*ls, sep=' ')
except EOFError:
pass
7-2 sdut-數(shù)據(jù)逆序
一行輸入N個(gè)整數(shù),按逆序輸出數(shù)值。
輸入格式:
輸入有多行。
每行有若干個(gè)整數(shù),用空格分隔。
輸出格式:
對(duì)于每行輸入,將數(shù)值逆序輸出,數(shù)值以空格隔開(kāi)。
輸入樣例:
1 3 5 9 7 6 8 2 4 0 234 656 2223
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
-3 -43 23 435 -5667 231 100 2002 2035
輸出樣例:
2223 656 234 0 4 2 8 6 7 9 5 3 1
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
2035 2002 100 231 -5667 435 23 -43 -3
代碼:
try:
while True:
ls = list(input().split())
ls.reverse()
print(*ls, sep=' ')
except EOFError:
pass
7-3 計(jì)算 1+2+3+…+m
輸入一個(gè)正整數(shù)m(0<=m<=100),計(jì)算 1+2+3+…+m 的值。
輸入格式:
多組輸入。
在一行輸入一個(gè)正整數(shù)m。
輸出格式:
對(duì)應(yīng)每一行輸入,在一行中按照格式“sum=S”輸出對(duì)應(yīng)的和S.
輸入樣例:
10
100
輸出樣例:
在這里給出相應(yīng)的輸出。例如:
sum=55
sum=5050
代碼:
try:
while True:
n = int(input())
sum = 0
for i in range(1, n + 1):
sum += i
print("sum=%d" % sum)
except EOFError:
pass
7-4 sdut-統(tǒng)計(jì)身高超過(guò)平均值的學(xué)生
中小學(xué)生每個(gè)學(xué)期都要體檢,量身高,因?yàn)樯砀呖梢苑从澈⒆拥纳L(zhǎng)狀況。
現(xiàn)在,一個(gè)班的身高已經(jīng)量好了,請(qǐng)輸出其中超過(guò)平均身高的那些學(xué)生的身高。
輸入格式:
輸入為一行數(shù)據(jù),以空格分隔,每個(gè)數(shù)據(jù)都是一個(gè)正整數(shù)。
輸出格式:
輸出超過(guò)身高平均數(shù)的學(xué)生的身高數(shù)值,每個(gè)數(shù)后面有一個(gè)空格。
輸出的順序和輸入的相同。
輸入樣例:
143 174 119 127 117 164 110 128
輸出樣例:
143 174 164
代碼:
ls = [float(n) for n in input().split()]
avg = float(sum(ls) / len(ls) * 1.0)
for each in ls:
if each > avg:
print(int(each), end=' ')
7-5 sdut-求整數(shù)的位數(shù)及各位數(shù)字之和
對(duì)于給定的正整數(shù)N,求它的位數(shù)及其各位數(shù)字之和。
(用Python實(shí)現(xiàn)提示:把整數(shù)轉(zhuǎn)換成字符串,列表,用sum和len函數(shù))
輸入格式:
輸入在一行中給出一個(gè)正整數(shù)N。
輸出格式:
在一行中輸出N的位數(shù)及其各位數(shù)字之和,中間用一個(gè)空格隔開(kāi)。
輸入樣例:
456
輸出樣例:
3 15
代碼:
ls = list(map(int, input()))
print(len(ls), sum(ls))
7-6 sdut-字母替換
編寫(xiě)程序,將輸入字符串中的大寫(xiě)英文字母按以下對(duì)應(yīng)規(guī)則替換,其他字符不變。
(Python實(shí)現(xiàn)提示:轉(zhuǎn)換表用元組實(shí)現(xiàn))
原字母 對(duì)應(yīng)字母
A Z
B Y
C X
D W
... ...
X C
Y B
Z A
輸入格式:
在一行中輸入字符串。
輸出格式:
在一行中給出替換完成后的字符串。
輸入樣例:
This is a pen.
輸出樣例:
在這里給出相應(yīng)的輸出。例如:
Ghis is a pen.
代碼:
s1 = input()
s2 = ""
for i in s1:
if i.isupper():
s2 += chr(155 - ord(i))
else:
s2 += i
print(s2)
7-7 sdut-輸出字母在字符串中位置索引
輸入一個(gè)字符串,再輸入兩個(gè)字符,求這兩個(gè)字符在字符串中的索引。
輸入格式:
第一行輸入字符串;
第二行輸入兩個(gè)字符,用空格分開(kāi)。
輸出格式:
從右向左輸出字符和索引(中間有一個(gè)空格)。下標(biāo)最大的字符最先輸出。每行一個(gè)。
輸入樣例:
pmispsissippi
s p
輸出樣例:
11 p
10 p
8 s
7 s
5 s
4 p
3 s
0 p
代碼:
s = input()
c1, c2 = input().split()
for i in range(len(s) - 1, -1, -1):
if s[i] == c1 or s[i] == c2:
print(i, s[i])
7-8 sdut- 輸出10個(gè)不重復(fù)的英文字母
輸入一個(gè)字符串,把最左邊的10個(gè)不重復(fù)的英文字母(不區(qū)分大小寫(xiě))挑選出來(lái)進(jìn)行輸出
如沒(méi)有10個(gè)英文字母,顯示信息“not found”。
輸入格式:
在一行中輸入字符串。
輸出格式:
在一行中輸出最左邊的10個(gè)不重復(fù)的英文字母;或者顯示信息:“not found"
輸入樣例1:
poemp134567
輸出樣例1:
not found
輸入樣例2:
This 156is a test example
輸出樣例2:
Thisaexmpl
代碼:
s1 = input()
s2 = ""
for each in s1:
if each.isalpha() and each.upper() not in s2 and each.lower() not in s2:
s2 += each
if len(s2) < 10:
print("not found")
else:
print(s2[0:10])
7-9 sdut-判斷兩個(gè)字符串是否為變位詞
如果一個(gè)字符串是另一個(gè)字符串的重新排列組合,那么這兩個(gè)字符串互為變位詞。
比如,“heart” 與 “earth” 互為變位詞,“Mary” 與 “arMy” 也互為變位詞?!癏ello world"與“worldHello"不是變位詞。
輸入格式:
第一行輸入第一個(gè)字符串;
第二行輸入第二個(gè)字符串。
輸出格式:
若是變位詞,輸出:yes;否則,輸出:no。
輸入樣例1:
Mary
arMy
輸出樣例1:
yes
輸入樣例2:
hello world
world hello
輸出樣例2:
yes
輸入樣例3:
I am very good.
verygood I am.
輸出樣例3:
no
代碼:
from collections import *
def slv(s1, s2):
if Counter(s1) == Counter(s2):
print("yes")
else:
print("no")
sa = input()
sb = input()
slv(sa, sb)
7-10 sdut-猴子選大王
一群猴子要選新猴王。新猴王的選擇方法是:
讓N只候選猴子圍成一圈,從某位置起順序編號(hào)為1~N號(hào)。從第1號(hào)開(kāi)始報(bào)數(shù),每輪從1報(bào)到3,凡報(bào)到3的猴子即退出圈子,接著又從緊鄰的下一只猴子開(kāi)始同樣的報(bào)數(shù)。如此不斷循環(huán),最后剩下的一只猴子就選為猴王。
請(qǐng)問(wèn)是原來(lái)第幾號(hào)猴子當(dāng)選猴王?
輸入格式:
在一行中給一個(gè)正整數(shù)N(≤1000)。
輸出格式:
在一行中輸出當(dāng)選猴王的編號(hào)。
輸入樣例:
11
輸出樣例:
7
代碼:
n,p = int(input()),0
for i in range(2, n + 1):
p = (p + 3) % i
print(p + 1)
7-11 sdut-找出兩組數(shù)據(jù)中非公共元素
給定兩行輸入,每行代表一組元素。求兩組中非公共的元素。
輸入格式:
在兩行中給出兩組元素,每行的元素間用空格分開(kāi)。在一行中每個(gè)元素只出現(xiàn)一次。
輸出格式:
在一行中按照元素的輸入順序輸出不是兩組共有的元素,以空格分隔。(題目保證至少存在一個(gè)這樣的元素)
輸入樣例:
10 3 -5 2 8 0 5 -15 9 100
10 6 4 8 2 -5 9 0 100 1
輸出樣例:
3 5 -15 6 4 1
代碼:
ls1 = list(input().split())
ls2 = list(input().split())
ls3 = []
for it in ls1:
if it in ls1 and it in ls2:
pass
else:
ls3.append(it)
for it in ls2:
if it in ls1 and it in ls2:
pass
else:
ls3.append(it)
print(*ls3, sep=' ')
7-12 sdut-特定矩陣元素和
給定一個(gè)n×n的方陣,計(jì)算該矩陣主、副對(duì)角線上的所有元素之和。
主對(duì)角線為從矩陣的左上角至右下角的連線;副對(duì)角線為從矩陣的右上角至左下角的連線。
輸入格式:
輸入第一行給出正整數(shù)n(1<n≤10);
隨后n行,每行給出n個(gè)數(shù),其間以空格分隔。
輸出格式:
在一行中給出該矩陣主、副對(duì)角線的所有元素之和。
輸入樣例1
4
2 3 4 1
5 6 1 1
7 1 8 1
1 1 1 1
輸出樣例1
21
輸入樣例2
3
1 2 3
4 5 6
7 8 9
輸出樣例2
25
代碼:
n = int(input())
ls1, sum = [], 0
for i in range(n):
ls2 = input().split()
ls1.insert(i, ls2)
sum += int(ls1[i][i]) + int(ls1[i][n - 1 - i])
if n % 2:
sum -= int(ls1[n // 2][n // 2])
print(sum)
7-13 sdut-矩陣行、列、對(duì)角線和的最大值
求一個(gè)3*3矩陣每行、每列及對(duì)角線和的最大值。
輸入格式:
在一行輸入9個(gè)整數(shù)。
輸出格式:
在一行輸出每行、每列及對(duì)角線和的最大值。
輸入樣例:
3 6 5 9 8 2 1 4 5
輸出樣例:
19
代碼:
num=list(map(int,input().split()))
l=[]
l.append(num[0]+num[4]+num[8])
l.append(num[2]+num[4]+num[6])
for i in range(0,6,3):
l.append(num[i]+num[i+1]+num[i+2])
for j in range(0,3):
l.append(num[j]+num[j+3]+num[j+6])
print(max(l))
7-14 sdut-判斷上、下三角矩陣
給定一個(gè)三角矩陣,判斷其是否為:上三角矩陣、下三角矩陣。
上三角矩陣指主對(duì)角線以下的元素都為0的矩陣;
下三角矩陣指主對(duì)角線以上的元素都為0的矩陣;
主對(duì)角線為從矩陣的左上角至右下角的連線。
輸入矩陣是三種情況之一:上三角矩陣、下三角矩陣或者都不是。
輸入格式:
輸入第一行給出一個(gè)正整數(shù)T,為待測(cè)矩陣的個(gè)數(shù)。
接下來(lái)給出T個(gè)矩陣的信息:
每個(gè)矩陣信息的第一行給出一個(gè)不超過(guò)10的正整數(shù)n。
隨后n行,每行給出n個(gè)整數(shù),其間以空格分隔。
輸出格式:
每個(gè)矩陣的判斷結(jié)果占一行。
如果輸入的矩陣是上三角矩陣,輸出“upper”,如果輸入的矩陣是下三角矩陣,輸出“l(fā)ower”,都不是輸出“no”。
輸入樣例:
3
3
1 2 3
0 4 5
0 0 6
2
1 0
-8 2
4
1 2 4 0
56 5 7 9
3 4 8 9
0 0 0 0
輸出樣例:
upper
lower
no
代碼:
T = int(input())
for i in range(T):
t = int(input())
s = []
s1 = 0
s2 = 0
for j in range(t):
s.append(list(map(int,input().split())))
for j in range(t):
for k in range(t):
if k > j:
s1 += s[j][k]
elif k < j:
s2 += s[j][k]
if s1 == 0 and s2 != 0:
print("lower")
elif s1 != 0 and s2 == 0:
print("upper")
else:
print("no")
7-15 sdut-打印顯示直角字母圖形
給定行數(shù),輸出指定行數(shù)的字母組成的圖形。
輸入格式:
在一行內(nèi)給出行數(shù)n,1<=n<=10。
輸出格式:
輸出由大小字母組成的直角圖形。
輸入樣例1:
2
輸出樣例1:
A
AB
輸入樣例2:
7
輸出樣例2:
A
AB
ABC
ABCD
ABCDE
ABCDEF
ABCDEFG
代碼:
s="ABCDEFGHIJ"
n=int(input())
for i in range(n):
for j in range(i+1):
print(s[j],end='')
print()
7-16 sdut-array2-4 打印“楊輝三角“ 品中國(guó)數(shù)學(xué)史 增民族自豪感(1)
背景介紹: 北宋人賈憲約1050年首先使用“賈憲三角”進(jìn)行高次開(kāi)方運(yùn)算。
南宋數(shù)學(xué)家楊輝在《詳解九章算法》(1261年)記載并保存了“賈憲三角”,故稱(chēng)楊輝三角。楊輝三角是中國(guó)數(shù)學(xué)史上的一個(gè)偉大成就。
楊輝三角,是中國(guó)古代數(shù)學(xué)的杰出研究成果之一,它把二項(xiàng)式系數(shù)圖形化,把組合數(shù)內(nèi)在的一些代數(shù)性質(zhì)直觀地從圖形中體現(xiàn)出來(lái),是一種離散型的數(shù)與形的結(jié)合。
中國(guó)南宋數(shù)學(xué)家楊輝1261年所著的《詳解九章算法》一書(shū)中出現(xiàn)。在歐洲,帕斯卡(1623----1662)在1654年發(fā)現(xiàn)這一規(guī)律,所以這個(gè)表又叫做帕斯卡三角形。帕斯卡的發(fā)現(xiàn)比楊輝要遲393年,比賈憲遲600年。
楊輝三角數(shù)字的特點(diǎn)為:
(1)在三角形的首列和對(duì)角線上,數(shù)值均為1;
(2)其余數(shù)據(jù)為:每個(gè)數(shù)字等于上一行的左右兩個(gè)數(shù)字之和,第n+1行的第i個(gè)數(shù)等于第n行的第i-1個(gè)數(shù)和第i個(gè)數(shù)之和,用公式表示為: C(n+1,i)=C(n,i)+C(n,i-1)。
圖示為:
楊輝三角的應(yīng)用:(a+b)的n次方,展開(kāi)式中的各項(xiàng)系數(shù)依次對(duì)應(yīng)楊輝三角的第(n+1)行中的每一項(xiàng)。
輸入格式:
欲打印楊輝三角的行數(shù)n(1<=n<=13)。
輸出格式:
每個(gè)數(shù)字占據(jù)4個(gè)字符的位置,數(shù)字左對(duì)齊,數(shù)字不足4位的右邊留出空格。
輸入樣例:
13
輸出樣例:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
1 10 45 120 210 252 210 120 45 10 1
1 11 55 165 330 462 462 330 165 55 11 1
1 12 66 220 495 792 924 792 495 220 66 12 1
代碼:
from math import *
def c(n, r):
if n == 0 or r == 0:
return 1
else:
return int(factorial(n) / (factorial(r) * factorial(n - r)))
x = int(input())
all,l = [], []
for n in range(x):
for r in range(n + 1):
l.append(c(n, r))
all.append(l[:])
l.clear()
for n in range(x):
for nn in range(n + 1):
print("%-4d" % all[n][nn], end='')
print()
7-17 sdut-array2-5 打印“楊輝三角“ 品中國(guó)數(shù)學(xué)史 增民族自豪感(2)
背景介紹:
北宋人賈憲約1050年首先使用“賈憲三角”進(jìn)行高次開(kāi)方運(yùn)算。
南宋數(shù)學(xué)家楊輝在《詳解九章算法》(1261年)記載并保存了“賈憲三角”,故稱(chēng)楊輝三角。楊輝三角是中國(guó)數(shù)學(xué)史上的一個(gè)偉大成就。
楊輝三角,是中國(guó)古代數(shù)學(xué)的杰出研究成果之一,它把二項(xiàng)式系數(shù)圖形化,把組合數(shù)內(nèi)在的一些代數(shù)性質(zhì)直觀地從圖形中體現(xiàn)出來(lái),是一種離散型的數(shù)與形的結(jié)合。
中國(guó)南宋數(shù)學(xué)家楊輝1261年所著的《詳解九章算法》一書(shū)中出現(xiàn)。在歐洲,帕斯卡(1623----1662)在1654年發(fā)現(xiàn)這一規(guī)律,所以這個(gè)表又叫做帕斯卡三角形。帕斯卡的發(fā)現(xiàn)比楊輝要遲393年,比賈憲遲600年。
楊輝三角數(shù)字的特點(diǎn)為:
(1)在三角形的首列和對(duì)角線上,數(shù)值均為1;
(2)其余數(shù)據(jù)為:每個(gè)數(shù)字等于上一行的左右兩個(gè)數(shù)字之和,第n+1行的第i個(gè)數(shù)等于第n行的第i-1個(gè)數(shù)和第i個(gè)數(shù)之和,用公式表示為: C(n+1,i)=C(n,i)+C(n,i-1)。
圖示為:
楊輝三角的應(yīng)用:(a+b)的n次方,展開(kāi)式中的各項(xiàng)系數(shù)依次對(duì)應(yīng)楊輝三角的第(n+1)行中的每一項(xiàng)。
輸入格式:
欲打印楊輝三角的行數(shù)n(1<=n<=13)。
輸出格式:
(1)輸出的數(shù)據(jù)為等腰三角形樣式;
(2)每個(gè)數(shù)字占據(jù)4個(gè)字符的位置,數(shù)字左對(duì)齊,數(shù)字不足4位的右邊留出空格;
(3)最后一行的數(shù)值“1”頂格,前面無(wú)空格。
提示:以n=5,分析行首空格數(shù)為:
輸入樣例1:
5
輸出樣例:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
輸入樣例2:
6
輸出樣例:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
代碼:
from math import *
def c(n, r):
if n == 0 or r == 0:
return 1
else:
return int(factorial(n) / (factorial(r) * factorial(n - r)))
x = int(input())
all = []
l = []
for n in range(x):
for r in range(n + 1):
l.append(c(n, r))
all.append(l[:])
l.clear()
cnt = x*2-2
for n in range(x):
print(' '*cnt, end='')
for nn in range(n + 1):
print("%-4d" % all[n][nn], end='')
print()
cnt -= 2
7-18 sdut-列表去重
輸入一個(gè)列表,去掉列表中重復(fù)的數(shù)字,按原來(lái)次序輸出!
輸入格式:
在一行中輸入列表。
輸出格式:
在一行中輸出不重復(fù)的列表元素。
輸入樣例1:
[4,7,5,6,8,6,9,5]
輸出樣例1:
4 7 5 6 8 9
輸入樣例2:
[1,2,3,"abcd","hello",1,2,3,4,5,6]
輸出樣例2:
1 2 3 abcd hello 4 5 6
代碼:
ls1 = eval(input())
ls2 = sorted(set(ls1), key=ls1.index)
print(*ls2, sep=' ')
7-19 sdut-期末考試之排名次
期末考試結(jié)束了,童鞋們的成績(jī)也出來(lái)的了,可是為了排名次可忙壞了老師,因?yàn)閷W(xué)生太多了。這時(shí),老師把這個(gè)任務(wù)交給了你,希望你能幫老師完成。作為IT人,你當(dāng)然不能用笨笨的人工方法了,編程解決才是好辦法。
共有三門(mén)課,語(yǔ)文、數(shù)學(xué)和英語(yǔ),要求根據(jù)學(xué)生的各科成績(jī)計(jì)算出其總成績(jī),并根據(jù)總成績(jī)從高到低排序.
輸入格式:
第一行一個(gè)整數(shù)N(N<=100),代表學(xué)生的人數(shù)。
接下來(lái)的N行數(shù)據(jù),每行有三個(gè)整數(shù),C,M,E分別代表一個(gè)學(xué)生語(yǔ)文、數(shù)學(xué)和英語(yǔ)的成績(jī).
輸出格式:
一共N行,每行一個(gè)數(shù),從大到小,分別代表各個(gè)學(xué)生的總成績(jī).
輸入樣例:
3
70 80 90
59 59 59
100 100 100
輸出樣例:
300
240
177
代碼:
n = int(input())
ls = []
for i in range(n):
ls.append(sum(map(int, input().split())))
ls.sort(reverse=True)
for it in ls:
print(it)
7-20 sdut- 矩陣轉(zhuǎn)置(II)
從鍵盤(pán)輸入一個(gè)m(2<=m<=6)*n(2<=n<=6)階的矩陣,編程輸出它的轉(zhuǎn)置矩陣。
輸入格式:
在第一行輸入矩陣的行數(shù)m和列數(shù)n的值;
在第二行按照矩陣格式輸入矩陣的數(shù)據(jù),同行數(shù)據(jù)之間用空格隔開(kāi)。
輸出格式:
矩陣格式輸出,同行數(shù)據(jù)之間用一個(gè)空格隔開(kāi)。
輸入樣例:
3 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
輸出樣例:
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
代碼:
n, m = map(int, input().split())
ls = []
for i in range(n):
ls.append(list(map(int, input().split())))
ls_re = list(zip(*ls))
for i in range(m):
print(*ls_re[i], sep=' ')
7-21 sdut-array2-1-矩陣轉(zhuǎn)置(I)
從鍵盤(pán)輸入矩陣的行數(shù)N,和一個(gè)N×N階的矩陣,編程輸出它的轉(zhuǎn)置矩陣。
輸入格式:
首行為矩陣的行數(shù)(列數(shù))N;
然后是N行N列組成矩陣的數(shù)據(jù)。每行內(nèi)數(shù)據(jù)之間用空格隔開(kāi)。
輸出格式:
矩陣格式輸出,每行內(nèi)非尾部的每個(gè)數(shù)據(jù)后跟一個(gè)空格,行尾數(shù)據(jù)后不加空格,為換行符。
輸入樣例:
4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
輸出樣例:
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
代碼:
n=int(input())
ls = []
for i in range(n):
ls.append(list(map(int, input().split())))
ls_re = list(zip(*ls))
for i in range(n):
print(*ls_re[i], sep=' ')
7-22 sdut-矩陣輸出
輸入n個(gè)整數(shù),輸出由這些整數(shù)組成的n行矩陣。
輸入格式:
第一行輸入一個(gè)正整數(shù)N(N<=20),表示后面要輸入的整數(shù)個(gè)數(shù)。
下面依次輸入N個(gè)整數(shù)。
輸出格式:
以輸入的整數(shù)為基礎(chǔ),輸出有規(guī)律的n行數(shù)據(jù)。
第1行原樣輸出獲得的N個(gè)整數(shù),從第2行開(kāi)始,上一行最后一個(gè)數(shù)變成下一行的首個(gè)數(shù)值。
輸入樣例:
5
3 6 2 5 8
輸出樣例:
3 6 2 5 8
8 3 6 2 5
5 8 3 6 2
2 5 8 3 6
6 2 5 8 3
代碼:
n = int(input())
ls = list(input().split()*2)
pos1, pos2 = n, len(ls)
for i in range(n):
print(*ls[pos1:pos2], sep=' ')
pos1 -= 1
pos2 -= 1
7-23 sdut-對(duì)稱(chēng)矩陣的判定
輸入矩陣的行數(shù),再依次輸入矩陣的每行元素,判斷該矩陣是否為對(duì)稱(chēng)矩陣,若矩陣對(duì)稱(chēng)輸出“yes”,不對(duì)稱(chēng)輸出“no”。
輸入格式:
輸入有多組,每一組第一行輸入一個(gè)正整數(shù)N(N<=20),表示矩陣的行數(shù)(若N=0,表示輸入結(jié)束)。
下面依次輸入N行數(shù)據(jù)。
輸出格式:
若矩陣對(duì)稱(chēng)輸出“yes",不對(duì)稱(chēng)輸出“no”。
輸入樣例:
3
6 3 12
3 18 8
12 8 7
3
6 9 12
3 5 8
12 6 3
0
輸出樣例:
yes
no
代碼:
while True:
n = int(input())
if n == 0:
break
else:
ls, flag = [], 1
for i in range(0, n):
ls.append(list(input().split()))
for i in range(n):
for j in range(n):
if ls[i][j] != ls[j][i]:
flag = 0
if flag == 0:
print("no")
else:
print("yes")
7-24 sdut-array2-2-局部峰值
給定一個(gè)N行乘N列的2D數(shù)組,逐行掃描該值并打印出所有局部峰值,該值大于其左上、上、右上、左、右、左下、下、右下的值(如果有)。
N的范圍是2到150。
輸入格式:
多組輸入。每組輸入包含兩部分:
第一行包含整數(shù)N,表示2D數(shù)組的大小。
后面的N行中的每一行包含N個(gè)非負(fù)整數(shù),用空格分隔。
輸出格式:
對(duì)于每組輸入,輸出所有局部峰值按行順序排列,每個(gè)局部峰值后跟一個(gè)空格。
如果沒(méi)有局部峰值,則輸出“none”。
每組輸出之后加換行符。
輸入樣例:
2
5 1
1 0
2
5 2
2 3
3
5 5 5
0 5 0
5 5 5
3
1 2 5
2 3 2
4 2 3
輸出樣例:
5
5
none
5 4
代碼:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-482124.html
while True:
try:
n, ls = int(input()), []
ls.append([float('-inf')] * (n + 2))
for i in range(n):
row = list(map(int, input().split()))
row.insert(0, float('-inf'))
row.append(float('-inf'))
ls.append(row)
ls.append([float('-inf')] * (n + 2))
flag = 0
for i in range(1, n + 1):
for j in range(1, n + 1):
if ls[i][j] > max(ls[i - 1][j - 1], ls[i - 1][j], ls[i - 1][j + 1], ls[i][j - 1], ls[i][j + 1],
ls[i + 1][j - 1], ls[i + 1][j], ls[i + 1][j + 1]):
print("%d " % ls[i][j], end='')
flag = 1
if flag == 0:
print("none")
else:
print()
except EOFError:
break
代碼可能不是特別好,感謝大家耐心閱讀
212丨acc丨2022.11.4文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-482124.html
到了這里,關(guān)于SDUT—Python程序設(shè)計(jì)實(shí)驗(yàn)五(列表與元組)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!