python100例

实例002:"个税计算"

题目: 企业发放的奖金根据利润提成。利润(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.for循环
    2.二维数组
#数据初始化
profit=int(input('Show me the money: '))
bonus=0
thresholds=[[0, 100000], [100000, 200000], [200000, 400000], [400000, 600000], [600000, 1000000],[1000000, profit]]
rates=[0.1, 0.075, 0.05, 0.03, 0.015, 0.01]
#逻辑代码
for i in range(len(thresholds)):
    if profit>=thresholds[i][1]:
        bonus += (thresholds[i][1]-thresholds[i][0]) * rates[i]
    else:
        profit = profit - thresholds[i][0]
        bonus = bonus + profit * rates[i]
        break

print(bonus)

实例003:"完全平方数"

题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
  • 涉及知识点:
    1.切记要让程序自己完成所有计算,写代码是一个翻译的过程,不是计算的过程.
    2.math,round,sqrt
import math
for x in range(0,10000):
    if (round(math.sqrt(x+100))-math.sqrt(x+100))==0 and (round(math.sqrt(x+168))-math.sqrt(x+168)==0):
        print(x)
        break

实例005:"三数排序"

题目:输入三个整数x,y,z,请把这三个数由小到大输出。
  • input(),输入的都是字符串,如果是比较数字,需要用int()转换成数字类型,不然会比较字符串对应的ascii码.
  • 用append方法在列表中新增数据.
#数据初始化,用循环初始化列表.
raw=[]
for i in range(3):
    x = input("please input a number")
    raw.append(int(x))

print(raw)
#核心方法是用一个数和其他数比较大小,第一次选出最小的一个放在第一位,第二次选出次小的,以此类推.
#需要注意的是,选出最大的后,这个最大的值不应该再作为比较的对象.
for x in range(len(raw)):
    for y in range(x,len(raw)):
        if int(raw[x])>int(raw[y]):
            raw[x],raw[y] = raw[y],raw[x]

print(raw)

#方法二,直接调用内置函数
print(sorted(raw))

实例006:斐波那契数列

题目:1,1,2,3,5...
  • if 判断是没有break的,只有循环才有.
 p = input("please input a number ")
 p = int(p)
 raw=[1,1]
 
if p<=2:
    print(raw[0:p])
else:
     for i in range(p-2):
         raw.append(raw[i] + raw[i+1])
     print(raw[0:p])

实例008

题目:输出九九乘法表
  • 9行,所以重复9次,从1到9,即i in range(1,9+1)
  • 列与行的关系是列=行,即j in range(1,i+1)
for i in range(1,10):
    for j in range(1,i+1):
        print('%d*%d=%2ld '%(i,j,i*j),end='')
    print()

实例011

题目 有一对兔子,从出生后第4个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
i = int(input("繁殖几个月? "))
i = i//3
print("现在有%d只兔子"%(2**(i+1)))

实例012:100到200的素数

题目 判断101-200之间有多少个素数,并输出所有素数。
  • 可以直接用公式.
  • 也可以逆向思维,用去除法.
#定义一个计算x内素数的函数
def primes(x):
    a = []
    b = []
    #生成一个范围内的数列
    for i in range(1,x+1):
        b.append(i)
    #print(b)

    #生成一个范围内的合数
    for i in range(2, x):
        for j in range(i, x):
            if j*i<=x:
                a.append(j*i)
    #print(a)

    #列表a除重
    ##转换成列表达到除重,再转换回来
    a = list(set(a))
    #print(a)

    #把合数去除,剩余质数
    for i in  range(len(a)):
        b.remove(a[i])
    #print(len(b))
    #print(b)
    return b

b = primes(100)
a = primes(200)#
#print(b)
#print(a)

for i in range(len(b)):
    a.remove(b[i])

print(len(a))
print(a)

实例013:所有水仙花数

题目 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
  • 刚刚开始没想到str也是list.
  • 两种方法都可以,后面那个简单一些.
a = []
b = []
for i in range(100,1000):
    a.append(i)
for i in range(len(a)):
    b = list(str(a[i]))
    if (int(b[0]))**3+(int(b[1]))**3+(int(b[2]))**3 == a[i]:
       print(a[i])
for i in range(100,x+1):
    s = str(i)
    one = int(s[0])
    ten = int(s[1])
    hun = int(s[2])
    if i ==  one**3 + ten**3 + hun**3:
        print(i)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容