パソコンレベル2 Python基本問題 ブラッシングノート(2)

1. 幾何学的配列

1. ユーザーがカンマで区切って入力した 3 つの数値を取得し、a、b、c として記録します。a を開始値、b を隣接する数値の比率、c をシーケンスの長さとすると、等比数列となります。が生成されます
。このシーケンスはカンマ区切り形式で出力され、最後の要素が出力された後にはカンマはありません。等比数列の
公式:
ここに画像の説明を挿入します
与えられたコードは次のとおりです:

#请完善如下代码,不得修改其他代码
a,b,c = 
ls = []
for i in range(c):

print(",".join(ls))
a,b,c = eval(input())
for i in range(c):
    print(a*b**i,end=',')

このように書いたときに、最後の要素が出力された後にカンマがあることに気づいたことはありますか?
ここに画像の説明を挿入します
他のコードを変更せずに最後の要素を削除するにはどうすればよいですか?正直に言うと、最終的にカンマを修正する方法はまだ見つかりませんでした。 join メソッドの処理なので、ここには別のメソッドがあるはずです。
joinメソッドの詳しい説明:
Pythonのjoin()関数は、リスト、タプル、文字列(str)、ジェネレータ(generator)型のデータを特定の文字を使って結合することができます。
join 関数の定義
Python の join() 関数は、文字列シーケンスを接続するために使用され、文字列シーケンスの区切り文字をカスタマイズして、接続後に新しい文字列を返すことができます。その構文は次のとおりです。

str.join(sequence)

このうち、strは区切り文字、sequenceは接続する文字列の並びを表します。
join関数の使い方
文字列を連続して結合する必要がある場合、要素間の区切り文字で結ばれた文字列を戻り値として返すjoin関数を利用します。具体的な実装手順は次のとおりです。
(1) まず、リスト、タプル、文字列、その他の型など、接続する必要があるシーケンスを定義する必要があります。
(2) 次に、これらの要素を接続するセパレータを定義します。
(3) join() メソッドを呼び出し、セパレータをパラメータとして渡します。

a,b,c = eval(input())
ls = []
for i in range(c):
    ls.append(str(a*b**i))#join()函数可以把列表、元组、字符串(str)和生成器(generator)类型的数据用某个字符连接起来
print(",".join(ls))

ここに画像の説明を挿入します

2.文字列

このプログラムは、ユーザーがカンマで区切って入力した 5 つの数値を受け取り、入力された順にこれらの数値を出力します。各数値は 10 文字の幅を占め、右揃えで同じ行に表示されます。
分割の使用法の詳細な説明:
string.split(str, max)
str – 区切り文字。デフォルトでは、スペース、改行 (\n)、タブ (\t) などを含むすべての空文字が使用されます。
max – 分割数。実行する分割の数を指定します。デフォルト値は -1 で、これは「すべての出現」を意味します。
内部に二重引用符 " " がないことに注意してください。

num = input().split(",")#用列表来做,将输入的五个数以逗号分隔,然后放入列表中
for i in num:
    print("{:>10}".format(i),end="")#对列表本身进行遍历,记得将结尾默认成空

3. 簡単な計算問題

社会の平均労働時間は 1 日 8 時間(労働日と休憩日を区別しない)であり、あるコンピュータ科学者は記者のインタビューで、自分は毎日社会の平均労働時間より 3 時間多く働いていると述べました。科学者の現在の達成値を1とし、1時間働くごとに達成値が0.01%ずつ増加すると仮定して、科学者の5年後の達成値と、その達成値に到達するまでの年数の2つの結果を計算して出力します。 100のうち。このうち、達成値と年数は整数で表され、1年は365日として計算されます。
関係がよくわからない場合は、コードを書く前に自分で調べてもいいと思います。この種の質問をするときにパニックになったり混乱したりしないでください。

scale = 0.0001#成就值增量
def calv(base,day):
    val = base * pow((1+scale),day*11)
    return val
print('5年后的成就值是{}'.format(int(calv(1,5*365))))

year = 1
while calv(1,year*365) < 100:
    year += 1
print('{}年后成就值是100'.format(year))

4. 正の整数を決定する

プログラムは、ユーザーが入力した数値を受け取り、それが正の整数であるかどうかを判断します。正の整数でない場合は、「正の整数を入力してください」と表示され、正の整数が入力されるまでユーザーの再入力を待ちます。 、正の整数を表示して出力します。
この数値が正の整数かどうかを確認するにはどうすればよいですか?
次のコードは、
a > 0 と a % 1 == 0
a > 0 と type(a)==int
a > 0 と a == int(a という3 つのメソッドを提供します。

while True:
    try:#异常处理结构
        a = eval(input("请输入一个正整数:"))
		#if a > 0 and a % 1 == 0:
		#if a > 0 and type(a)==int:
         if a > 0 and a == int(a):
            print(a)
            break#跳出循环
         else:
             print("请输入正整数")
    except:
    print("请输入正整数")

難易度が上がったような気がします笑、さあさあ!

5. 必要に応じて数値を出力します

ユーザーが入力した20未満の正の整数を受け取り、画面上に01から正の整数までを1行ずつ表示します数値表示の幅は2で、足りない部分は0で埋めます。スペースの後に「>」記号を表示します。「 >」記号の数は、行の先頭の数と同じです。

n = input('请输入一个正整数')
for i in range(1,eval(n)+1):
    print('{:02} {}'.format(i, '>' * i))

6. 数字と文字の数を数えます

ユーザーに数字と文字を混ぜたデータ列を入力させ、数字と文字の数を数えて画面に表示します。
一番シンプルなもの!

ns = input("请输入一串数据:")
dnum,dchr = 0,0#结果死在这里,,,我的脑子呢????
for i in ns:
    if i.isnumeric():
        dnum += 1
    elif i.isalpha():
        dchr += 1
    else:
        pass
print('数字个数:{},字母个数:{}'.format(dnum,dchr))

今日はここまでです、皆さんの2級合格をお祈りしています!

おすすめ

転載: blog.csdn.net/m0_68165821/article/details/132921726