python练习题,, 1 ‘‘‘ 2 有


 1 ‘‘‘ 2 有四个数字:1、2、3、4,能组成多少互相不相同且无重复数字的三位数?各是多少? 3 ‘‘‘ 4 number_char_4 = [‘1‘, ‘2‘, ‘3‘, ‘4‘] 5 numbers = [] 6 for number_one in number_char_4: 7     # 这里必须使用副本 8     number_char_3 = number_char_4[:] 9     number_char_3.remove(number_one)10     for number_two in number_char_3:11         number_char_2 = number_char_3[:]12         number_char_2.remove(number_two)13         for number_three in number_char_2:14             number_char = number_one + number_two + number_three15             numbers.append(int(number_char))16 17 print(‘共有{}组互相不相同且无重复数字的三位数。‘.format(len(numbers)))18 print(‘这些数分别是: ‘)19 count = 020 for num in numbers:21     print(num, end=‘ ‘)22     count += 123     if count % 6 == 0:24         print()

结果

共有24组互相不相同且无重复数字的三位数。这些数分别是: 123 124 132 134 142 143 213 214 231 234 241 243 312 314 321 324 341 342 412 413 421 423 431 432 

 1 ‘‘‘ 2 有四个数字:1、2、3、4,能组成多少互相不相同且无重复数字的三位数?各是多少? 3 ‘‘‘ 4 numbers = [] 5 for i in range(1, 5): 6     for j in range(1, 5): 7         for k in range(1, 5): 8             if (i != j) and (j != k) and (i != k): 9                 number = i * 100 + j * 10 + k10                 numbers.append(number)11 12 print(‘共有{}组互相不相同且无重复数字的三位数。‘.format(len(numbers)))13 print(‘这些数分别是: ‘)14 count = 015 for num in numbers:16     print(num, end=‘ ‘)17     count += 118     if count % 6 == 0:19         print()

第二题

 1 ‘‘‘ 2 企业发放的奖金根据利润(I)低于或等于10万元时,奖金可提10%; 3 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的不封,可提成7.5%; 4 20万到40万之间时,高于20万元的部分,可提成5%; 5 40万到60万之间时高于40万的部分,可提成3%; 6 60万到100万元的部分按1%提成。 7 从键盘输入当月利润I,求应发奖金总数 8 ‘‘‘ 9 count = [1000000, 600000, 400000, 200000, 100000, 0]10 ratio = [0, 0.01, 0.03, 0.05, 0.075, 0.1]11 i = int(input(‘请输入你的利润(单位:元): ‘))12 result = 013 for n in range(len(count)):14     if i > count[n]:15         result += (i - count[n]) * ratio[n]16         i = count[n]17 print(‘你的奖金为:‘ + str(result) + ‘元‘)

结果

请输入你的利润(单位:元): 210000你的奖金为:18000.0元

第三题

 1 ‘‘‘ 2 输入三个整数x,y,z,请把这三个数由小到大输出 3 ‘‘‘ 4 numbers = [] 5 for i in range(3): 6     numbers.append(eval(input(‘输入一个数:‘))) 7 print(‘这三个数从小到大依次为:‘) 8 n = 1 9 for i in sorted(numbers):10     print(i, end=‘‘)11     if n < len(numbers):12         print(‘ < ‘, end=‘‘)13     n += 1

结果

输入一个数:3输入一个数:3.3输入一个数:2这三个数从小到大依次为:2 < 3 < 3.3

第四题

1 ‘‘‘2 将一个列表的数据复制到另一个列表中3 ‘‘‘4 a = [1, 2, 3]5 b = a[:]6 print(b)

结果

[1, 2, 3]

第五题

 1 ‘‘‘ 2 时间库。 3  4 ‘‘‘ 5  6 import time 7  8 # 返回当前时间的时间戳 9 now_time = time.time()10 print(‘当前的时间戳为:‘, now_time)11 # 接受时间戳,返回当地时间下的时间元组12 now_time = time.localtime(now_time)13 print(‘当地时间下的时间元组为:‘, now_time)14 # 接受时间元组,返回可读字符串表示的当前时间15 now_time = time.strftime(‘%Y-%m-%d %H:%M:%S‘, now_time)16 print(‘当前时间是:‘, now_time)17 # 休眠1秒18 time.sleep(1)19 print(‘当前时间是:‘,time.strftime(‘%Y-%m-%d %H:%M:%S‘, time.localtime(time.time())))

结果

当前的时间戳为: 1542778354.7217052当地时间下的时间元组为: time.struct_time(tm_year=2018, tm_mon=11, tm_mday=21, tm_hour=13, tm_min=32, tm_sec=34, tm_wday=2, tm_yday=325, tm_isdst=0)当前时间是: 2018-11-21 13:32:34当前时间是: 2018-11-21 13:32:35

第六题

 1 ‘‘‘ 2 打印出所有的“水仙花数” 3 所谓“水仙花数”是指一个三位数,其个位数字立方和等于该数本身 4 例如:153是一个“水仙花数”,应为153=1**3+5**3+3**3 5 ‘‘‘ 6 for x in range(1, 10): 7     for y in range(0, 10): 8         for z in range(0, 10): 9             s1 = x * 100 + y * 10 + z10             s2 = x**3 + y**3 + z**311             if s1 == s2:12                 print(s1)

结果

153370371407

第七题

 1 ‘‘‘ 2 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数 3 ‘‘‘ 4 char = input(‘请输入一行字符:‘) 5 alpha = 0 6 space = 0 7 digit = 0 8 other = 0 9 for c in char:10     if c.isalpha():11         alpha += 112     elif c.isspace():13         space += 114     elif c.isdigit():15         digit += 116     else:17         other += 118 print(‘你输入的字符串中,英文字母{}个,空格{}个,数字{}个,其他字符{}个‘.format(alpha, space, digit,19                                                     other))

结果

请输入一行字符:sdgfaskl;[email protected]@#你输入的字符串中,英文字母11个,空格0个,数字20个,其他字符4个

第八题

 1 ‘‘‘ 2 一球从100米高度自由落下,每次落地后,反跳回原高度的一半; 3 再次落下,求它在第10次落地时,共经过多少米?第10次反弹多高? 4  5 ‘‘‘ 6 height = 100 7 result = height 8 for _ in range(10): 9     result += height10     height /= 211 print(‘共经过了‘,height,‘米‘)12 print(‘第10次反弹了‘,result,‘米‘)

结果

共经过了 0.09765625 米第10次反弹了 299.8046875 米

第九题

 1 ‘‘‘ 2 利用递归求5! 3 ‘‘‘ 4  5  6 def factorial(n): 7     if n == 1: 8         return 1 9     else:10         return n * factorial(n - 1)11 12 13 print(factorial(5))

结果

120

第十题

1 # 生成0-9组成的字符串2 ‘‘.join([str(n) for n in range(10)])

结果

‘0123456789‘

第十一题

1 ‘‘‘2 在字典中找到年龄最大的人,并输出3 ‘‘‘4 people = {‘zhangsan‘: 19, ‘lisi‘: 12, ‘wangwu‘: 52, ‘zhaoliu‘: 30}5 max_age = max(list(people.values()))6 print(max_age)7 for key in people.keys():8     if people[key] == max_age:9         print(‘年龄最大的人是‘,key)

结果

52年龄最大的人是 wangwu

python练习题

评论关闭