python课堂小作业

1、有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?

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=233*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