本文共 1477 字,大约阅读时间需要 4 分钟。
实例001:数字组合 题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
程序分析:遍历全部可能,把有重复的剃掉。
方法一:
conut = 0for i in range(1,5): for j in range(1,5): for k in range(1,5): if(i!=j&j!=k&k!=i): print(str(i)+str(j)+str(k)) conut+=1print("共有"+str(conut)+"个")
方法二:
import itertoolssum2=0a=[1,2,3,4]for i in itertools.permutations(a,3): #a为可迭代对象,3为长度 print(''.join(str(x) for x in i)) #将数组i转换为字符串 sum2+=1print(sum2)
数组(列表)转字符串:
#方法1arr = ['a','b']str1 = ''.join(arr) #方法2arr = [1,2,3]#str = ''.join(str(i) for i in arr)#此处str命名与str函数冲突!str2 = ''.join(str(i) for i in arr)
字符串转数组:
#方法一str_x = 'avfg'st_list = list(str_x) #使用list() #方法二list_str = []list_str.extend(str_x ) #方法三list_str = [v for v in str_x]
实例002:“个税计算” 题目:企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?
程序分析:分区间计算即可。
将六个区间化成5次判断,判断标准作为一个数组thresholds,将六个区间的提成百分比作为一个数组rates,最大做5次循环比较即可。
profit=int(input('show me the money:'))bonus=0thresholds=[100000,100000,200000,200000,400000] rates=[0.1,0.075,0.05,0.03,0.015,0.01] #设置一个提成百分比数组for i in range(len(thresholds)): #一共分为6个区间,做5次比较 if profit<=thresholds[i]: bonus+=profit*rates[i] profit=0 break else: bonus+=thresholds[i]*rates[i] profit-=thresholds[i]bonus+=profit*rates[-1] print(bonus)
转载地址:http://uuvh.baihongyu.com/