python基础练习题
来源:互联网 发布:网路优化 编辑:程序博客网 时间:2024/06/13 21:22
1、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
list1 = [1,2,3,4]result = []for x in list1: for y in list1: for z in list1: if x != y and x != z and y != z: a = x*100+y*10+z result.append(a)print resultprint len(result)2、企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高
于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提
成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于
40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于
100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
I = input("请输入当月利润:") #利润可为整数或浮点数,所以不建议用raw_inputtj = [1000000,600000,400000,200000,100000,0] #条件tc = [0.01,0.015,0.03,0.05,0.075,0.01] #提成reward = 0 #初始化奖金for i in range(6): if I >= tj[i]: reward += (I-tj[i])*tc[i] I = tj[i]print reward3、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?(求1000以内的所有满足条件的数)
from math import sqrtfor z in range(1000): x = int(sqrt(z+100)) y = int(sqrt(z+100+168)) if x**2 == z+100 and y**2 == z+100+168: print z
4、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方
for x in range(1,10): for y in range(10): for z in range(10): i = x*100 + y*10 + z if x**3+y**3+z**3 == i: print i
5、将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
n = int(raw_input("请输入要分解的正整数:"))num = nfor k in range(2,n): while n != k: if n%k == 0: print "%d*"%k, n = n/k else: breakprint "%d=%d"%(n,num)
6、输入两个正整数m和n,求其最大公约数和最小公倍数。
程序分析:利用辗除法。
最大公约数:指两个或多个整数共有约数中最大的一个
最小公倍数=两数的乘积/最大公约(因)数
m = int(raw_input("请输入正整数m:"))n = int(raw_input("请输入正整数n:"))x = my = nif n>m: m,n = n,mfor i in range(n): k = m%n if k != 0: m,n =n,kMAXgy = n #最大公约数MINgb = x*y/MAXgy #求最小公倍数print "最大公约数为:" + str(MAXgy)print "最小公倍数为:" + str(MINgb)
7、求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
程序分析:关键是计算出每一项的值。
需要输入两个值a和n
提示使用函数,raw_input,input,eval
a = raw_input("请输入计算值a: ")n = input("几个数进行相加? ")str = ""for i in range(1,n+1): str += a*i+"+"print "%s = %d"%(str[:-1],eval(str[:-1]))
8、一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程
找出1000以内的所有完数。
ws = []for n in range(1,1000): t = [] for i in range(1,n): if n%i == 0: t.append(i) if sum(t) == n: ws.append(n) print ws
9、利用循环输出一个菱形图案:
x = int(raw_input("最大宽度几颗星:"))for i in range(x): print " "*(x-i-1),"* "*(i+1)for j in range(x): print " "*(j+1),"* "*(x-j-1)
阅读全文
0 0
- python基础练习题
- 基础练习题
- Python 练习题
- python 练习题
- python 练习题
- python练习题
- Python练习题
- Python练习题
- Python练习题
- python练习题
- Python练习题
- Python练习题
- python练习题
- Python练习题
- python练习题
- python练习题!
- Python练习题
- python练习题
- .netC#中页面之间传值传参的六种方法
- struts2获取参数/封装对象
- mybatis-mybatis的基本配置
- Implement Stack using Queues
- KHL 002 11-计算机-本职-前台 盒模型
- python基础练习题
- 我是如何理解Java抽象类和接口的
- freeswitch查看注册用户
- git push failed Because the Fault of insufficient permission for adding an object
- STM32L073 使用cube生成ADC多路采样错误解决
- Codeforces 845 A Chess Tourney
- 最长上升子序列
- struts2的入门程序
- MyBatis(2)--MyBatis标准示例(单例)