python练习100例(十三 — 十八)

本文精选了多个编程题目,包括寻找水仙花数、分解质因数、成绩等级判断、字符统计及数字序列求和,通过实例讲解了如何使用Python解决实际问题。
  1. 例十三:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
#x=int(input('请输入一个整数:'))
for i in range(100,1000):
    m = int(i/100)
    n = int(i%100/10)
    l = i%10
    if(m**3 + n**3 + l**3 == i):
        print(i,'是一个水仙数')
  1. 例十四:将一个正整数分解质因数。例如:输入90,打印出90=2×3×3×5。
def fun(n):
    arr = []
    if(int(n)!=n or n<0):             #判断
        return '输入错误!'
    elif(n==2):
        return '2 = 1 * 2'
    else:
        tmp=n
        i=2
        while(i>=2 and i<=tmp):     #循环判断
            if(tmp%i==0):
                arr.append(i)       #添加到列表中
                tmp=tmp/i           #tmp存储商
                i=2                 #i重新循环
            else:
                i+=1
            if(i==tmp+1):       #当到了tmp时,循环结束
                break
    print_x = str(n)+' = '
    for i in range(0,len(arr)):
        if(i==len(arr)-1):
            print_x=print_x+str(arr[i])
        else:
            print_x=print_x+str(arr[i])+'*'
    return print_x
  1. 例十六:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
x = int(input('平输入学习成绩:'))
if(x>=90):
    print('学习成绩是%d,属于A'%x)
elif(x>=60):
    print('学习成绩是%d,属于B'%x)
else:
    print('学习成绩是%d,属于C'%x)
  1. 例十七:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
y = input('请输入字符串:')
alphas = 0
space = 0
digit = 0
others = 0
for i in range(0,len(y)):
    if(y[i].isalpha()):    #判断字符串中的英文字母,返回true
        alphas+=1
    elif(y[i].isspace()):    #判断字符串中的空格,返回true
        space+=1
    elif(y[i].isdigit()):      #判断字符串中的数字,返回true
        digit+=1
    else:
        others+=1
print('字符串%s中,英文字母有%d个,空格有%d个,数字有%d个,其他字符有%d个'%(y,alphas,space,digit,others))
  1. 例十八:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。
num = int(input('请输入有多少个数字相加:'))
a = int(input('请输入数字:'))
arr = []
s = 0
sum_num = 0
print_s = ''
for i in range(0,num):
    s = s + a*10**i       #s计算相加的数值
    sum_num = s+sum_num   #sum_num计算和
    arr.append(s)
for i in range(0,len(arr)):
    if(i==num-1):
        print_s = print_s + str(arr[i]) + '=' + str(sum_num)
    else:
        print_s = print_s + str(arr[i]) + '+'
print(print_s)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值