Python学習5日目---基礎編(3)

1. 正方行列 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()


2. 配列の右側の領域

ここに画像の説明を挿入

書き方1:

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))

書き方 2:

本当に簡単です!学び!それを得る!

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))

3. 正方行列 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())

4 番目、文字列内の数値の数

ここに画像の説明を挿入
i.isdigital() は Python の文字列メソッドで、文字列内のすべての文字が数字であるかどうかを判断するために使用されます。そうである場合は True を返し、そうでない場合は False を返します。

s = input()
c = 0
for i in s:
    if i.isdigit():
        c+=1
print(c)

5. 円形拘束

ここに画像の説明を挿入
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")

6. 文字列とスペース

ここに画像の説明を挿入

書き方1:

s=input()
for i in s:
    print(i,end=' ')

書き方 2:

print(" ".join(input()))

書き方3:

for c in input():
    print(c, end = ' ')

7、文字列を交換します

ここに画像の説明を挿入

書き方1:

print(input().replace(input(),'#'))

書き方 2:

s, t = input(), input()
for c in s:
    if c == t:
        print('#', end = '')
    else:
        print(c, end = '')

8、文字列挿入

ここに画像の説明を挿入

書き方1:

彼が入力数を指定しなかったことを除いて試してください

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

書き方 2:

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:])

書き方3:

列挙する

enumerate() 関数を使用して文字列を走査すると、各サイクルで現在の文字とそれに対応する添え字が返されます。

順序()

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

おすすめ

転載: blog.csdn.net/qq_51408826/article/details/129370807