python练习题
Posted 2018jason
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python练习题相关的知识,希望对你有一定的参考价值。
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_three 15 numbers.append(int(number_char)) 16 17 print(‘共有{}组互相不相同且无重复数字的三位数。‘.format(len(numbers))) 18 print(‘这些数分别是: ‘) 19 count = 0 20 for num in numbers: 21 print(num, end=‘ ‘) 22 count += 1 23 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 + k 10 numbers.append(number) 11 12 print(‘共有{}组互相不相同且无重复数字的三位数。‘.format(len(numbers))) 13 print(‘这些数分别是: ‘) 14 count = 0 15 for num in numbers: 16 print(num, end=‘ ‘) 17 count += 1 18 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 = 0 13 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 + z 10 s2 = x**3 + y**3 + z**3 11 if s1 == s2: 12 print(s1)
结果
153 370 371 407
第七题
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 += 1 12 elif c.isspace(): 13 space += 1 14 elif c.isdigit(): 15 digit += 1 16 else: 17 other += 1 18 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 += height 10 height /= 2 11 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练习题的主要内容,如果未能解决你的问题,请参考以下文章
Python matplotlib 基础练习:画出正弦曲线等
spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段