学python的第五天---基础(3)

一、平方矩阵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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值