17-python入门练习题一

(一)有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?(暴力法,熟悉判断条件)

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
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

(二)企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?"

profit = int(input('请输入你的利润值(单位:万元):'))
arr = [1000000,600000,400000,200000,100000,0]
rat = [0.01,0.015,0.03,0.05,0.075,0,1]
money = 0
for i in range(0,6):
    if profit > arr[i]:
        money += (profit - arr[i]) * rat[i]
        profit = arr[i]
print('Your total money is: ',money)
请输入你的利润值(单位:万元):2000000
Your total money is:  39500.0

(三)输入三个整数x,y,z,请把这三个数由小到大输出"

my_list = []
for i in range(3):
    tmp = int(input('input: '))
    my_list.append(tmp)
my_list.sort(reverse = False)
my_list
input: 5566
input: 6865
input: 565





[565, 5566, 6865]

(四)将一个列表的数据复制到另一个列表中

a = [1,2,3]
b = a[:]
b
[1, 2, 3]

(五)暂停一秒输出,并格式化当前时间。使用 time 模块的 sleep() 函数

import time
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))
time.sleep(1)
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))
time.sleep(2)
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))
2019-03-02 11:11:01
2019-03-02 11:11:02
2019-03-02 11:11:04

(六)打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方

for i in range(1,10):
    for j in range(0,10):
        for k in range(0,10):
            x = i * 100 + j * 10 + k
            y = pow(i,3) + pow(j,3) + pow(k,3)
            if x == y:
                print(x)
153
370
371
407

(七)输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数

str_input = input('input: ')
letter = 0
space = 0
digit = 0
others = 0
for c in str_input:
    if c.isalpha():
        letter += 1
    elif c.isspace():
        space += 1
    elif c.isdigit():
        digit += 1
    else:
        others += 1
print('char = %d,digit = %d,space = %d,others = %d' % (letter,space,digit,others))
input: sds6156  (*()*0
char = 3,digit = 2,space = 5,others = 5

(八)一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

h = 100
height = []
time = 10
for i in range(2,time+1):
    h /= 2
    height.append(h)
print(sum(height) * 2 + 100)
print(min(height) / 2)
299.609375
0.09765625

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值