标签:app 完全 sleep itertools 奇数 最大 范围 时间 strftime
1、有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
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,求应发放奖金总数?
3、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
4、输入某年某月某日,判断这一天是这一年的第几天?
5、输入三个整数x,y,z,请把这三个数由小到大输出。
6、斐波那契数列。
7、将一个列表的数据复制到另一个列表中。
8、输出 9*9 乘法口诀表。
9、暂停一秒输出。
10、暂停一秒输出,并格式化当前时间。
1、有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
方法一:
1 l = [] 2 for i in range(1,5): 3 for j in range(1,5): 4 for m in range(1,5): 5 if len({i,j,m}) == 3: 6 l.append(i * 100 + j * 10 + m) 7 print(l) 8 print(len(l))
1 [123, 124, 132, 134, 142, 143, 213, 214, 231, 234, 241, 243, 312, 314, 321, 324, 341, 342, 412, 413, 421, 423, 431, 432] 2 24
方法二:
1 from itertools import permutations 2 3 l = [] 4 for i in permutations([1, 2, 3, 4], 3): 5 l.append(i) 6 7 print(l) 8 print(len(l))
1 [(1, 2, 3), (1, 2, 4), (1, 3, 2), (1, 3, 4), (1, 4, 2), (1, 4, 3), (2, 1, 3), (2, 1, 4), (2, 3, 1), (2, 3, 4), (2, 4, 1), (2, 4, 3), (3, 1, 2), (3, 1, 4), (3, 2, 1), (3, 2, 4), (3, 4, 1), (3, 4, 2), (4, 1, 2), (4, 1, 3), (4, 2, 1), (4, 2, 3), (4, 3, 1), (4, 3, 2)] 2 24
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,求应发放奖金总数?
方法一:
1 # 这是最弱的方法,然而我想到的就是这种。。 2 a = [1000000,600000,400000,200000,100000,0] 3 b = [0.01,0.015,0.03,0.05,0.075,0.1] 4 x = int(input(‘销售利润是:‘)) 5 6 if x >= a[0]: 7 bonus = (x - a[0]) * b[0] + 400000 * b[1] + 200000 * b[2] + 200000 * b[3] + 100000 * b[4] + 100000 * b[5] 8 print(‘提成是:‘,bonus) 9 elif a[0] > x >= a[1]: 10 bonus = (x - a[1]) * b[1] + 200000 * b[2] + 200000 * b[3] + 100000 * b[4] + 100000 * b[5] 11 print(‘提成是:‘, bonus) 12 elif a[1] > x >= a[2]: 13 bonus = (x - a[2]) * b[2] + 200000 * b[3] + 100000 * b[4] + 100000 * b[5] 14 print(‘提成是:‘, bonus) 15 elif a[2] > x >= a[3]: 16 bonus = (x - a[3]) * b[3] + 100000 * b[4] + 100000 * b[5] 17 print(‘提成是:‘, bonus) 18 elif a[3] > x >= a[4]: 19 bonus = (x - a[4]) * b[4] + 100000 * b[5] 20 print(‘提成是:‘, bonus) 21 elif a[4] > x >= a[5]: 22 bonus = (x - a[5]) * b[5] 23 print(‘提成是:‘, bonus) 24 elif x < 0: 25 print(‘x必须大于0‘)
1 销售利润是:200001 2 提成是: 17500.05
方法二:
1 # 参考别人的 2 a = [1000000, 600000, 400000, 200000, 100000, 0] 3 b = [0.01, 0.015, 0.03, 0.05, 0.075, 0.1] 4 count = 0 5 while count < 5: 6 x = int(input(‘销售利润是:‘)) 7 sum = 0 8 for n in range(0,6): 9 if x > a[n]: 10 tmp = (x-a[n])*b[n] # 计算该级别的提成 11 sum += tmp 12 x = a[n] # 后续的每一级都计算满额提成 13 print(sum) 14 count += 1
3、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
方法一:
import math x = -99 # 这个值是后面看别人答案时想到的,x+100必须大于0 while x < 10000: if math.pow(int(math.sqrt(x+100)),2) == x+100: if math.pow(int(math.sqrt(x + 100 + 168)), 2) == x + 100 + 168: # 简单列等式,谁不会。。。mdzz
# print(x) x += 1
方法二:看了别人的思路,我觉得我俨然是个弱智。
‘‘‘ 1、则:x + 100 = n2, x + 100 + 168 = m2 2、计算等式:m2 - n2 = (m + n)(m - n) = 168 3、设置: m + n = i,m - n = j,i * j =168,i 和 j 至少一个是偶数 4、可得: m = (i + j) / 2, n = (i - j) / 2,i 和 j 要么都是偶数,要么都是奇数。 5、从 3 和 4 推导可知道,i 与 j 均是大于等于 2 的偶数。 6、由于 i * j = 168, j>=2,则 1 < i < 168 / 2 + 1。 7、接下来将 i 的所有数字循环计算即可。 ‘‘‘ i = 1 #求出最大范围 while ((i+1)*(i+1)-i*i) <= 168: i += 1 #循环测试并打印 for j in range(1,i): for k in range(1,i): if (k*k - j*j) == 168: print(k*k-268)
4、输入某年某月某日,判断这一天是这一年的第几天?
方法一:
import datetime Y = int(input(‘年:‘)) m = int(input(‘月:‘)) d = int(input(‘日:‘)) days = datetime.datetime(Y,m,d) - datetime.datetime(Y,1,1) + datetime.timedelta(1) # 减去当年1月1日 n = int(str(days).split(‘ ‘)[0]) print(n) 年:2003 月:12 日:2 336
方法二:
import time # D=input("请输入年份,格式如XXXX-XX-XX:") D=‘2017-4-3‘ d=time.strptime( D,‘%Y-%m-%d‘).tm_yday # print("the {} day of this year!" .format(d)) print(d) print(time.strptime( D,‘%Y-%m-%d‘)) # 或使用datetime模块 import datetime print(datetime.date(2017,4,3).timetuple().tm_yday) print(datetime.date(2017,4,3).timetuple())
93 time.struct_time(tm_year=2017, tm_mon=4, tm_mday=3, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=93, tm_isdst=-1) 93 time.struct_time(tm_year=2017, tm_mon=4, tm_mday=3, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=93, tm_isdst=-1)
5、输入三个整数x,y,z,请把这三个数由小到大输出。
方法一
L = [a,b,c] L.sort() print(‘\n‘.join(l))
方法二:
1 # 最弱智的做法 2 # a = input(‘a=‘) 3 # b = input(‘b=‘) 4 # c = input(‘c=‘) 5 a = 10 6 b = 20 7 c = 30 8 9 l = [] 10 11 l.append(a) 12 if b < a: 13 l.insert(0,b) 14 if c < b: 15 l.insert(0,c) 16 elif c > a: 17 l.append(c) 18 else: 19 l.insert(1,c) 20 else: 21 l.append(b) 22 if c < a: 23 l.insert(0,c) 24 elif c > b: 25 l.append(c) 26 else: 27 l.insert(1,c) 28 29 print(‘\n‘.join(l))
方法三:
# 冒泡法 a=[1,3,5,2,4,5,7] n=len(a) for i in range(0,n): for j in range(i,n) : if (a[i] >= a[j] ): a[i],a[j] = a[j],a[i] print(a)
[1, 2, 3, 4, 5, 5, 7]
6、斐波那契数列。
方法一:
l = [0,1] def f(n): for x in range(n): l.append(l[x]+l[x+1]) f(20) print(l)
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946]
方法二:
# 使用递归 def fib(n): if n == 1 or n == 2: return 1 return fib(n - 1) + fib(n - 2) # 输出了第10个斐波那契数列 print(fib(20))
7、将一个列表的数据复制到另一个列表中。
a = list(range(20)) b = a[:] print(a) print(b) print(id(a)) print(id(b))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] 2030007944584 2030007104200
8、输出 9*9 乘法口诀表。
1 # 先百度一下乘法口诀表长什么样子,怎么排列的 2 ‘‘‘ 3 乘法口诀表如下: 4 1*1=1 5 2*1=2 2*2=4 6 3*1=3 3*2=6 3*3=9 7 4*1=4 4*2=8 4*3=12 4*4=16 8 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 9 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 10 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 11 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 12 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 13 ‘‘‘ 14 formula = ‘{a} * {b} = {c}‘ 15 16 s = ‘‘ 17 for i in range(1,10): 18 print(s) 19 s = ‘‘ 20 for j in range(1,i+1): 21 s += formula.format(a=i,b=j,c=i*j) + ‘ ‘ 22 # print(formula.format(a=i,b=j,c=i*j))
1 * 1 = 1 2 * 1 = 2 2 * 2 = 4 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36 7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49 8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64
9、暂停一秒输出。
import time for n in range(1,10): print(n) time.sleep(1)
10、暂停一秒输出,并格式化当前时间。
import time for i in range(5): struct_time = time.localtime(time.time()) t = time.strftime(‘%Y-%m-%d %H:%M:%S‘,struct_time) t = time.strftime(‘%Y-%m-%d‘,struct_time) print(t) time.sleep(1)
标签:app 完全 sleep itertools 奇数 最大 范围 时间 strftime
原文地址:http://www.cnblogs.com/fat39/p/7133336.html