Python基础练习——组合输出、利润奖金问题

题目一、有1、2、3、4个数字,能组成哪些互不相同且无重复数字的三位数?

解题思路:三层循环,通过条件判断得到互不相同的三位数
代码如下:

# -*- coding:utf-8 -*-
for a in [1,2,3,4]:
    for b in [1,2,3,4]:
        for c in [1,2,3,4]:
            if a!=b and b!=c and c!=a:
                s=a*100+b*10+c
                print s

注意点:
1、Python与其他语言最大的区别就是,Python的代码块不使用大括号({})来控制类,函数以及其他逻辑判断。python最具特色的就是用缩进来写模块。
缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行
常见的因为缩进出错而提示的报错如下:
IndentationError:unexpected indent
意想不到的缩进,可能是tab和空格没对齐的问题。
IndentationError:unindent does not match any outer indentation level
使用的缩进方式不一致,有的是tab键缩进,有的是空格缩进,需改为一致

建议在每个缩进层次使用 单个制表符两个空格四个空格 , 切记不能混用

题目二、企业发放的奖金根据利润提成。利润(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时应发放奖金总数。

初始代码:

# -*- coding:utf-8 -*-
i=raw_input("请输入利润i:")
if i.isdigit():
    i=int(i)
    if i>=1000000:
        s=(i-1000000)*0.01+(1000000-600000)*0.015+(600000-400000)*0.03+(400000-200000)*0.05+(200000-100000)*0.075+100000*0.1
    elif i>=600000:
        s=(i-600000)*0.015+(600000-400000)*0.03+(400000-200000)*0.05+(200000-100000)*0.075+100000*0.1
    elif i>=400000:
        s=(i-400000)*0.03+(400000-200000)*0.05+(200000-100000)*0.075+100000*0.1
    elif i>=200000:
        s=(i-200000)*0.05+(200000-100000)*0.075+100000*0.1
    elif i>=100000:
        s=(i-100000)*0.075+100000*0.1
    else:
        s=i*0.1
        print "应发的奖金数为:"
        print s
else:
    print "输入不合法!"

猜你喜欢

转载自blog.csdn.net/lyycasablanca000/article/details/54947153