一、平方矩阵II
之前感觉好像不是这个思路写的,但是觉得这个思路蛮好的
m=[[0 for i in range(105)]for j in range(105)]
while True:
n=int(input())
if n==0:
exit()
for i in range(0,n):
m[i][i]=1
for i in range(n):
for j in range(i+1,n):#因为会把另外一边操作了,所以不用管另一边
m[i][j]=m[i][j-1]+1
m[j][i]=m[j-1][i]+1
for i in range(0,n):
for j in range(0,n):
print(m[i][j],end=' ')
print()
print()
二、数组的右方区域
写法一:
感觉python真的很灵活
method = input()
res = 0
count = 0
input()
for i in range(1,11):
data = list(map(lambda x:float(x),input().split(" ")))
if i<6:
res += sum(data[12-i:])
count += len(data[12-i:])
else:
res += sum(data[i+1:])
count += len(data[i+1:])
if method == "S":
print("{:.1f}".format(res))
else:
print("{:.1f}".format(res/count))
写法二:
真的很简单哦!!学会!get it!
t, i = input(), [[float(y) for y in input().split()] for x in range(12)]
ans=sum([sum([i[x][y] for y in range(12-x if x<=5 else 12-(5-(x-6)),12)]) for x in range(1,11)])
print("%.1f"%(ans if t=="S" else ans/30))
三、平方矩阵I
思维题,嗯!想到了就做出来了!
n = int(input())
while n != 0:
for i in range(1, n + 1):
for j in range(1, n + 1):
print(min(i, n - i + 1, j, n -j + 1), end=" ")
print()
print()
n = int(input())
四、字符串中的数字个数
i.isdigit() 是 Python 中的一个字符串方法,用于判断一个字符串中的所有字符是否都是数字。如果是,则返回 True;否则返回 False。
s = input()
c = 0
for i in s:
if i.isdigit():
c+=1
print(c)
五、循环相克令
再次被python的灵活给惊呆了!!
n = int(input())
p1 = [["Hunter","Gun"],["Gun","Bear"],["Bear","Hunter"]]
for i in range(n):
n = input().split(" ")
if n[0] == n[-1]:
print("Tie")
elif n in p1:
print("Player1")
else:
print("Player2")
六、字符串加空格
写法一:
s=input()
for i in s:
print(i,end=' ')
写法二:
print(" ".join(input()))
写法三:
for c in input():
print(c, end = ' ')
七、替换字符串
写法一:
print(input().replace(input(),'#'))
写法二:
s, t = input(), input()
for c in s:
if c == t:
print('#', end = '')
else:
print(c, end = '')
八、字符串插入
写法一:
try except是因为他没有规定输入的个数
while True:
try:
str,substr=input().split()
_max=max(str)
i=str.index(_max)
s=str[:i+1]+substr+str[i+1:]
print(s)
except EOFError:
break
写法二:
sys.stdin.readlines()将多行的输入读入
import sys
lines=sys.stdin.readlines()
for i in range(len(lines)):
str_, substr_ = lines[i].strip().split()[0], lines[i].strip().split()[1]
max_ = max(str_)
index = str_.index(max_)
print(str_[:index+1] + substr_ + str_[index+1:])
写法三:
enumerate
使用 enumerate() 函数对字符串进行遍历,每次循环会返回当前字符及其对应的下标。
ord()
使用 ord() 函数将其转换为 ASCII 码值,与当前最大值比较
while True:
try:#跟我自己的写法是一样的
str,substr = input().split(" ")
max = 0
index = 0
for i,s in enumerate(str):
if (ord(s) > max):
max = ord(s)
index = i
str_list = list(str)
str_list.insert(index + 1 ,substr)
str = "".join(str_list)
print(str)
except:
break