python练习题——1~5

编程多练多看多总结!先练它个一百题

题目:http://www.runoob.com/python/python-100-examples.html

  • 01——有1,2,3,4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

    思路:三个位置,四种可能,并且不相同无重复。前者我们可以for循环遍历,最后加上if限制条件输出

list = [1,2,3,4]
count = 0
for i in list:
    for j in list:
        for k in list:
            if i!=j and i!= k  and j != k:
                count +=1
                #print("{0}{1}{2}".format(i,j,k))
                print(i*100+j*10+k)
print("总计%d个" % count)

# 24个
  • 02——企业发放的奖金根据利润提成。利润(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.相当于分段函数,我们考虑if-elif-else语句以达到目的;2.构造求利润公式,再代值进去

法二:
per = float(input("请输入利润(万元):"))
mon = 0
i = [100,60,40,20,10,0]
j = [0.01,0.015,0.03,0.05,0.075,0.1]
for m in range(6):
    if per > i[m]:
        c = per - i[m]
        mon = c*j[m]+mon
        per = i[m]
print("工资(万元):%s" % mon)
  • 03——一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
#法一:列表表达式
list = [i**2-100 for i in range(1000) for j in range(1000) if (j**2 - i**2) == 168]
print(list)
#法一的等价形式
for i in range(1000):
    for j in range(1000):
        if (j**2 - i**2) == 168:
            print(i**2 - 100)
#利用数量关系构造if限制条件
  • 04——输入某年某月某日,判断这一天是这一年的第几天?

datetime模块是date和time模块的合集

datetime.date:表示日期的类,返回:year-month-day

datetime.timedelta:表示时间间隔,即两个时间点的间隔

import  datetime
year = int(input("输入年份:"))
month = int(input("输入月份:"))
day = int(input("输入天:"))

targetday = datetime.date(year, month, day)#格式化标准日期def __init__(self, year: int, month: int, day: int)
result = targetday - datetime.date(targetday.year-1, 12, 31)#减去上一年的最后一天
print("%s是%s年的第%s天" % (targetday, year, result.days))
  • 05——输入三个整数x,y,z,请把这三个数由小到大输出?
x = int(input("请输入第一个整数:"))
y = int(input("请输入第二个整数:"))
z = int(input("请输入第三个整数:"))
list = [x,y,z]
print("由小到大排序:%s" % sorted(list))

如有错误,欢迎指正!

你可能感兴趣的:(Python练习)