Python教室の宿題

1. 1、2、3、4 の 4 つの数字があります。数字を繰り返さずに 3 桁の数字を何通り作ることができますか? それぞれ何個ですか?

s= 0
for i in range(1, 5):#从1到四遍历
    for j in range(1, 5):
        for c in range(1, 5):
            if(i != j) and (i != c) and (c != j):
                print(i*100 +j*10 + c * 1)#i做为百位,j作为十位,c作为个位
                s += 1
print('共有%s种' % s)

画像の説明を追加してください

2. 101 ~ 200 の間に素数がいくつあるかを判断し、すべての素数を出力します。

count = 0
leap = 1
from math import sqrt
for m in range(101, 201):#循环
    k = int(sqrt(m + 1))
    for i in range(2, k + 1):
        if m % i == 0:
            leap = 0
            break
    if leap == 1:
        print('%5d' % m, end='')
        count += 1
        if count % 10 == 0:
            print(end='')
    leap = 1
print('\n')
print('101-200之间一共有%d个素数' % count)

画像の説明を追加してください

3. 正の整数を素因数に分解します。例: 90 を入力、90 を出力 = 2 3 3*5

from sys import stdout
from pip._vendor.distlib.compat import raw_input

n = int(raw_input("请输入一个正整数:"))
print("n = %d" % n)

for i in range(2, n + 1):
    while n != i:
        if n % i == 0:
            stdout.write(str(i))
            stdout.write("*")
            n = n / i
        else:
            break
print("%d" % n)

画像の説明を追加してください

4. 文字列を入力し、その中に含まれる英文字、スペース、数字、その他の文字の数を数えます。

s=input('请输入字符:')
letter=0#英文字母
space=0#空格
digit=0#数字
other=0#其他
for i in s:
    if i.isalpha():#判断是否是字母
        letter+=1
    elif i.isspace():#判断是否是空格
        space+=1
    elif i.isdigit():#判断是否是数字
        digit+=1
    else:
    
        other+=1
print('字母个数为{}\n空格字数为{}\n数字字数为{}\n其他字符为{}\n'.format(letter,space,digit,other))

画像の説明を追加してください

5. 1 ~ 25 の階乗の合計

a=1
sum=0
for i in range(1,26):
    a=a*i
    sum=sum+a
print("1-20的阶乘:\n",sum)

画像の説明を追加してください

6. 回文の数

x=int(input("请输入一个整数:"))
if x<0:
    print("不是回文数。")
elif not x//10:# 这个条件判断的是个位数,个位数直接是回文数
    print("是回文数。")
else:
    y=x
    weishu=0
    while x:# 取得当前数的位数
        weishu+=1
        x=x//10
    while True:
        a=y//(10**(weishu-1))# 这是取数字的末位
        b=y%10# 这是取数字的末位
        if a!=b:# 只要首尾不相等直接判断不是回文数退出循环
            print("不是回文数。")
            break
        weishu-=2
        if weishu==1:
            print("是回文数。")
            break
        if not weishu:
            print("是回文数。")
            break
        y=y//10# 这一句话是去掉末位
        y=y%(10**weishu)# 去掉首位

画像の説明を追加してください

おすすめ

転載: blog.csdn.net/qq_62127918/article/details/130702541