[Touge-Python] Python 第 5 章 宿題 (初級) (7~16)

レベル 7: 桁の合計が 5 になる数字

タスクの説明
1000 以内の正の整数 n を入力し、[0,n] の間の数字の合計が 5 になる数値を同じ行に出力します (間にスペースが入ります)。数字は区切られています (行末にスペース)。

入力形式
1000 以内の正の整数 n を入力します

出力形式
条件を満たす数値

示例
输入:

100

出力:

5 14 23 32 41 50

参照コード

a = int(input())
for i in range(a+1):
    if i==5:
        print(i, end=' ')
    elif len(str(i))==2 and int(str(i)[0])+int(str(i)[1])==5:
        print(i, end=' ')
    elif len(str(i))==3 and int(str(i)[0])+int(str(i)[1])+int(str(i)[2])==5:
        print(i, end=' ')

レベル 8: 文字列の長さ

タスクの説明
ユーザーが文字列を入力すると、プログラムは文字列の長さを出力します

入力形式
文字列を入力してください

出力形式
文字列の長さを表す整数

示例 1
输入:

Hello world!

出力:

12

参照コード

print(len(input()))

レベル 9: 文字列の暗号化

タスクの説明
ユーザーが 1 行に大文字、小文字、数字を含む文字列を入力すると、プログラムは大文字をアルファベットの 5 番目の文字に置き換えます。 Replace では、小文字はアルファベットの 3 番目の文字に置き換えられ、その他の文字はそのまま出力され、文字列の暗号化が実現されます。

入力形式
少なくとも 1 つの文字を含む文字列を入力してください

出力形式
暗号化された文字列

示例 1
输入:

Life is short, you need Python!

出力:

Qlih lv vkruw, brx qhhg Ubwkrq!

参照コード

a = 'ABCDEFGHIGKLMNOPQRSTUVWXYZ'
b = 'FGHIGKLMNOPQRSTUVWXYZABCDE'
c = 'abcdefghijklmnopqrstuvwxyz'
d = 'defghijklmnopqrstuvwxyzabc'
s = input()
res = ''
for i in s:
    n = a.find(i)
    m = c.find(i)
    if n==-1 and m==-1:
        res+=i
    elif n!=-1 and m==-1:
        res+=b[n]
    elif n==-1 and m!=-1:
        res+=d[m]
print(res)

レベル 10: 単語を出力する

タスクの説明
英語の文章を入力します。各単語はスペースで区切られます。句読点の前にスペースはなく、その後にスペースが続きます。各単語を次の形式で出力してください。出現順序 (句読点は前の単語に属します)。

入力形式
英語の文章

出力形式
文中の単語を複数の行に分けて出力します

示例
输入:

Never forget to say “thanks”.

出力:

Never
forget
to
say
“thanks”.

参照コード

a = input().split(' ')
for j in a:
    print(j)

レベル 11: 大文字と小文字の変換

タスクの説明
文字列を入力し、大文字を小文字に、小文字を大文字に変換し、その他の文字はそのままにして、変換された文字列を出力します。

入力形式
文字列を入力します。

出力形式
変換後の文字列を出力します。

示例 1
输入:

Hello, Python 3.7.4

出力:

hELLO, pYTHON 3.7.4

参照コード

s = input()
res = ''
for c in s:
    if 'a'<=c<'z':
        res += c.upper()
    elif 'A'<=c<='Z':
        res += c.lower()
    else:
        res += c
print(res)

レベル 12: 指定された文字を検索する

タスクの説明
ユーザーが指定した文字列から指定された文字を検索するプログラムを作成します。

入力形式
入力の最初の行は検索対象の文字です

2 行目は、復帰で終了する空ではない文字列です。

出力形式
見つかった場合は、文字列内の文字に対応する最小の添字を「index = subscript」の形式に従って 1 行に出力します (添字は 0 から始まります)。それ以外の場合は「Not Found」が出力されます。

示例 1
输入:

m
programming

出力:

index = 6

参照コード

a = input()
b = input()
flag = 0
for i in b:
    if i==a:
        print('index = ' + str(b.find(i)))
        flag = 1
        break
if flag==0:
    print('Not Found')

レベル 13: ランダム パスワード ジェネレーター

タスクの説明
文字列

'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\()*+,-.'

毎回 からランダムに 1 文字を選択し、n 回繰り返し、取得した文字を使用して新しい文字列をパスワードとして形成します。パスワードの長さはn と乱数シードsはユーザーが入力します。

この質問では、ランダム抽出のための random.choice() 関数を使用する必要があります

入力形式
パスワードの長さとランダム性をそれぞれ示す 2 つの正の整数 ns を 1 行に入力します。 . シードの番号を半角カンマで区切って指定します。

出力形式
長さの文字列n

示例
输入:

10,5

出力:

wJ&3Xv6keL

参照コード

from random import *
n, s = map(int, input().split(','))
a = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\()*+,-.'
seed(s)
for i in range(n):
    c = choice(a)
    print(c, end='')

レベル 14: Microsoft シリアル番号をシミュレートして生成する

タスクの説明
Microsoft 製品には通常 25 桁のシリアル番号があり、各 Microsoft 製品の製品シリアル番号を区別するために使用されます。製品シリアル番号は、“-” で区切られた 5 つの英数字文字列で構成され、各文字列は 5 つの文字列で構成されます。例: 36XJE-86JVF-MTY62-7Q97Q-6BWJ2 各文字は、次の 24 個の文字と数字のいずれかから取得されます。 B C E F G H J K M P Q R T V W X Y 2 3 4 6 7 8 9 これらの 24 文字を使用する理由は、類似点の文字と数字の混同を避けるためです。不一致を避けるために、I1O0 など。トラブル。乱数シード関数の構文は次のとおりです。random.seed(n)

この質問では、random.choice() メソッドを適用して毎回ランダムな文字を取得する必要があります。 ! !

入力形式
2 行のそれぞれに正の整数を入力します。
最初の整数は、生成されるシリアル番号の数を表します。 a> a>
2 番目の正の整数は乱数シードを表します

出力形式
指定された数のシリアル番号

示例
输入:

2
10

出力:

3CVX3-BJWXM-6HCYX-QEK9R-CVG4R
TVP7M-WH7P7-RGWKW-4TC3B-KGJP2

平均コードサイズ: 15 行

参照コード

from random import *

n = int(input())
s = int(input())
seed(s)
c = 'BCEFGHJKMPQRTVWXY2346789'
for i in range(n):
    key = ''
    for j in range(1, 26):
        key += choice(c)
        if j%5==0 and j!=25:
            key += '-'
    print(key)

レベル 15: 数列の合計

タスクの説明
このレベルのタスク:
特別なシーケンス式の値を計算します。

a+aa+aaa+aaaa+...+a...a(N个a)

其中1<=a<=9,第N项由Na组成.
例:若a=1,N=3,表达式为:

1+11+111

プログラミング要件
入力:
最初の行に整数を入力しますA。数値は次の範囲内である必要があります。 19 (1 および 9 を含む)
2 行目に整数を入力してくださいN

出力:
N 項目の合計値を出力します。
入力が要件を満たさない場合の出力: data error

テスト手順
プラットフォームは、作成したコードをテストします。

テスト入力:

1
3

期待される出力:

123

テスト入力:

12
-3

期待される出力:

data error

ミッションを開始し、成功を祈ってください!

参照コード

a = int(input())
b = int(input())
if a<1 or a>9 or b<0:
    print('data error')
else:
    s = d = 0
    for i in range(b):
        d = d*10+a
        s += d
    print(s)

レベル 16: 単語数

タスクの説明
このレベルのタスク: 英語の文を入力し、復帰で終了し、単語をスペースで区切り、句読点の後に少なくとも 1 つのスペースを置き、数を数えて出力します。単語数のカウント (単語のみをカウントします。数字は単語ごとにカウントされ、句読点はカウントされません。繰り返される単語は出現する回数だけカウントされます)。

プログラミング要件
入力: 英語の文章
出力: 単語数

テスト手順
プラットフォームは、作成したコードをテストします。

テスト入力:

Life is short, you need Python!

期待される出力:

6

参照コード

a = input().split(' ')
print(len(a))

おすすめ

転載: blog.csdn.net/qq_45801887/article/details/134913973