题目一、有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 "输入不合法!"