python经典一百道习题two

本文涵盖了多个Python编程练习,包括判断素数、找出水仙花数、质因数分解、条件运算符应用、字符统计、数字字符串相加以及寻找完数。通过这些习题,读者可以加深对Python编程基础的理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:判断101-200之间有多少个素数,并输出所有素数

 #-*- coding:utf-8 -*-
 3 from math import sqrt 
 4 def main():
 5     for i in range(101,201):
 6         flag = 1
 7         k = int(sqrt(i))
 8         for j in range(2,k+1):
 9             if i%j == 0:
10                 flag = 0
11                 break
12         if flag == 1:
13             print '%5d'%(i),
14     
15 if __name__ == "__main__":
16     main()

题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方

 1 #!/usr/bin/python
 2 #-*- coding:utf-8 -*-
 3 def main():
 4     for i in range(100,1000):
 5         a = i%10
 6         b = i/100
 7         c = (int(i/10))%10
 8         if i == a**3+b**3+c**3:
 9             print "%5d"%(i),
10 
11 if __name__ == "__main__":
12     main()

题目:将一个正整数分解质因数。例如:输入90,打印出90=233*5。

 4 def main():
 5     n = int(raw_input('Enter a number:'))
 6     print n,'=',
 7     while(n!=1):
 8         for i in range(2,n+1):
 9             if (n%i)==0:
10                 n/=i
11                 if(n == 1):
12                     print '%d'%(i)
13                 else:
14                     print '%d *'%(i),
15                 break
16             
17         
18 if __name__ == "__main__":
19     main()

题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

 3 def main():
 4     s = int(raw_input('Enter a number:'))
 5     if s>=90:
 6         grade = 'A'
 7     elif s>=60:
 8         grade = 'B'
 9     else:
10         grade = 'C'
11     print grade,
12 
13 if __name__ == '__main__':
14     main()
复制代码

题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

1 #!/usr/bin/python
 2 #-*- coding:utf-8 -*-
 3 #there is no ++ operator in Python
 4 import string
 5 def main():
 6     s = raw_input('input a string:')
 7     letter = 0
 8     space = 0
 9     digit = 0
10     other = 0
11     for c in s:
12         if c.isalpha():
13             letter+=1
14         elif c.isspace():
15             space+=1
16         elif c.isdigit():
17             digit+=1
18         else:
19             other+=1
20     print 'There are %d letters,%d spaces,%d digits and %d other characters in your string.'%(letter,space,digit,other)
21 
22 if __name__ == '__main__':
23     main()

题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

 1 #!/usr/bin/python
 2 #-*- coding:utf-8 -*-
 3 def main():
 4     basis = int(raw_input("Input the basis number:"))
 5     n = int(raw_input("Input the longest length of number:"))
 6     b = basis
 7     sum = 0
 8     for i in range(0,n):
 9         if i==n-1:
10             print "%d "%(basis),
11         else:
12             print "%d +"%(basis),
13         sum+=basis
14         basis = basis*10+b
15     print '= %d'%(sum),
16     
17 
18 if __name__ == '__main__':
19     main()

题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。

1 from math import sqrt
 2 n = int(raw_input('input a number:'))
 3 sum = n*-1
 4 k = int(sqrt(n))
 5 for i in range(1,k+1):
 6     if n%i == 0:
 7         sum += n/i
 8         sum += i
 9 if sum == n:
10     print 'YES'
11 else:
12     print 'NO'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值