# -*- coding: UTF-8 -*- for i in range(1,5): for j in range(1,5): for k in range(1,5): if (i != j) and (i != k) and (j != k): print i,j,k 1 2 3 4 5 6 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 来计算表达式的值,也就是奖金总数。就是把奖金叠加起来,具体算法还是要在纸上计算,这种方法适用于初学编码的人,比如我,用最笨的数学思路解决问题,就是说在数学上你是按照什么方法做的,然后把他转化成代码,就比较容易理解了。
# -*- coding: UTF-8 -*- while True: I = input("pls input the lirun:") if I <= 10: a = I * 0.01 print a elif I <= 20 and I > 10: b =0.25 + I * 0.075 print b elif I <= 40 and I > 20: c = 0.75 + I * 0.05 print c elif I <= 60 and I > 40: d = 0.95 + I * 0.03 print d elif I <= 60 and I > 100: e = 2 + I * 0.015 print e else: f = 2.95 + I * 0.01 print f 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 方法二:这种方法就比较难懂了,适合于基础好的人
# -*- coding: UTF-8 -*- I = int(raw_input('净利润:')) #这应该就是各个分界值了,把它们放在列表里方便访问 arr = [1000000,600000,400000,200000,100000,0] #这是各个分界值所对应的奖金比例值 rat = [0.01,0.015,0.03,0.05,0.075,0.1] #这是总奖金的初始值 r = 0 #有6个分界值当然要循环6次 for idx in range(0,6): if I > arr[idx]: r = r + (I - arr[idx]) * rat[idx] print (I - arr[idx]) * rat[idx] I = arr[idx] print r 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3.题目:一个整数,它加上100和加上268后都是一个完全平方数,请问该数是多少?
# -*- coding: UTF-8 -*- import math for i in range(10000): x = int(math.sqrt(i + 100)) y = int(math.sqrt(i + 268)) if (x * x == i + 100) and (y * y == i + 268): print i 1 2 3 4 5 6 7 4.题目:输入某年某月某日,判断这一天是这一年的第几天?
# -*- coding: UTF-8 -*- l = [] for i in range(3): x = int(raw_input('integer:\n')) l.append(x) #这里用append()函数,意思是追加元素 l.sort() print l 1 2 3 4 5 6 7 程序分析二:用一个变量来存储最小值,三个数进行比较后两两交换,这是最常用的思路。
# -*- coding: UTF-8 -*- x = input("input a num:") y = input("input a num:") z = input("input a num:") temp = 0 if x < y: temp = x x = y y = temp if x < z: temp = x x = z z = temp if y < z: temp = y y = z z = temp print z,y,x #由于上面是由小到大来比较和交换的,所以这里需要逆序输出 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 程序分析三:用函数sort进行排序,sort函数可以把数字按照从小到大的顺序进行重新排列。
# -*- coding: UTF-8 -*- x = input("input a num:") y = input("input a num:") z = input("input a num:") y = [x,y,z] #注意,这里只能是列表,不能是元组,因为元组是不可改变的,你懂得!! y.sort() print y 1 2 3 4 5 6 7 6.题目:将一个列表的数据复制到另一个列表中。