python经典练习100例(1~10)

目录

 

实例1:四个数字能组成多少个互不相同且无重复数字的三位数

实例2:企业发放的奖金根据利润提成

实例3:求一个整数:它加上100后是一个完全平方数,再加上168又是一个完全平方数

实例4:判断给定日期是这一年的第几天

实例5:从小到达排序

实例6:斐波那契数列

实例7:将一个列表的数据复制到另一个列表中

实例8:输出 9*9 乘法口诀表

实例9:暂停一秒输出

实例10:暂停一秒输出,并格式化当前时间


实例1:四个数字能组成多少个互不相同且无重复数字的三位数


题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?

# -*- coding: UTF-8 -*-

count = 0
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:
                count = count + 1
                print i,j,k
print "number is: ",count

实例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,求应发放奖金总数?

#coding:UTF-8

def cal_bonuses(gain):
    if gain <= 10:
        return 0.1 * gain
    elif gain <= 20:
        return 0.1 * 10 + 0.075 * (gain - 10)
    elif gain <= 40:
        return 0.1 * 10 + 0.075 * (20 -10) + 0.05 * (gain - 20)
    elif gain <= 60:
        return 0.1 * 10 + 0.075 * (20 -10) + 0.05 * (40 - 20) + 0.03 * (gain - 40)
    elif gain <= 100:
        return 0.1 * 10 + 0.075 * (20 -10) + 0.05 * (40 - 20) + 0.03 * (60 - 40) + 0.015 * (gain - 60)
    else:
        return 0.1 * 10 + 0.075 * (20 -10) + 0.05 * (40 - 20) + 0.03 * (60 - 40) + 0.015 * (100 - 60) + 0.01 * (gain - 100)

def cal_bonuses2(gain):
    bonuses = 0
    arr = [100, 60, 40, 20, 10, 0]
    arr2 = [0.01, 0.015, 0.03, 0.05, 0.075, 0.1]
    for i in range(0, 6):
        if gain > arr[i]:
            bonuses += (gain - arr[i]) * arr2[i]
            print (gain - arr[i]) * arr2[i]
            gain = arr[i]
    return bonuses
            

def main():
    while 1:
        I = input("Please input gain of this mouth I(wan):")
        if I < 0:
            print "error"
        else:
            bonuses = cal_bonuses(I)
            bonuses = cal_bonuses2(I)
        print "bonuses is: ", bonuses

main()

实例3:求一个整数:它加上100后是一个完全平方数,再加上168又是一个完全平方数

题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?:

# coding: UTF-8

import math

def is_yes(number):
    tmp = int(math.sqrt(number))
    if number == tmp * tmp:
        return 1
    else:
        return 0

def main():
    for num in range(-100, 10000):
        if is_yes(num + 100) and is_yes(num + 100 + 168):
            print num

main()

实例4:判断给定日期是这一年的第几天

题目:输入某年某月某日,判断这一天是这一年的第几天?

# coding: UTF-8

def is_run(year):
    if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
        return 1
    else:
        return 0

def cal_num(year, mouth, day):
    num = day
    arr = [31, 28, 31, 30, 31, 30, 31, 31, 30 ,31, 30, 31]
    if mouth == 1:
        return day
    if mouth == 2:
        return 31+day
    if mouth > 2:
        for i in range(0, mouth-1):
            num += arr[i]
    if is_run(year):
        return num + 1
    else:
        return num

def main():
    year = int(raw_input("please input year:"))
    month = int(input("please input mouth:"))
    day = input("please input day:")
    number = cal_num(year, month, day)
    print  "year:", year, " month: ", month, " day: ",day , "is the ", number, "day of the year"

main()

实例5:从小到达排序

题目:输入三个整数x,y,z,请把这三个数由小到大输出。

# coding: UTF-8

# 交换两数值方法: 1. tmp 2. python特有 3. 加法 4. 异或
#    tmp = a
#    a = b
#    b = tmp

#    arr[i], arr[i+1] = arr[i+1], arr[i]

#    a = a + b
#    b = a - b
#    a = a - b

#    a = a ^ b
#    b = a ^ b
#    a = a ^ b

#python 中一切都是对象,严格意义我们不能说值传递还是引用传递,我们应该说传不可变对象和传可变对象。
# strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象

def sort(arr, length):
    for i in range(0, length-1):
        for j in range(0, length-1-i):
            if arr[j] > arr[j+1]:
#                swap(arr[i], arr[i+1])
                arr[j], arr[j+1] = arr[j+1], arr[j]

def main():
    print "Plz input there numbers:"
    x = input("X:")
    y = input("y:")
    z = int(raw_input("z:"))
    arr = [x, y, z]
    sort(arr, len(arr))

    print arr

def method2():
    arr = []
    for i in range(3):
        x = input("请输入三个数:第%s个数:" % i)
        arr.append(x)
    arr.sort()
    print arr


main()
method2()

实例6:斐波那契数列

# coding: UTF-8

def fib1(n):
    l = []
    l.append(1)
    l.append(1)
    for i in range(2, n):
        l.append(l[i-2] + l[i-1])
    print l

def fib2(n):
    a, b = 1, 1
    for i in range(n-1):
        a, b = b, a+b
    return a

def fib3(n):
    if n == 1 or n == 2:
        return 1
    return fib3(n - 1) + fib3(n - 2)

def fib4(n):
    if n == 1:
        return [1]
    if n == 2:
        return [1, 1]
    fibs = [1, 1]
    for i in range(2, n):
        fibs.append(fibs[-1] + fibs[-2])
    return fibs

fib1(10)

print fib2(10)

print fib3(10)

print fib4(10)

实例7:将一个列表的数据复制到另一个列表中

# coding: UTF-8

l1 = [1, 2, 3]
l2 = l1
l3 = l1[:]

print 'l2:', l2, " l3:", l3

l1.append(4)
print 'l2:', l2, " l3:", l3

实例8:输出 9*9 乘法口诀表

# coding: UTF-8

# python 输出不换行: 2.x: ",";  3.x: end=""
# 制表符,换行符: \t \n
for i in range(1, 10):
    for j in range(i, 10):
        print i, " X ", j, "=", i*j, '\t' ,
    print

print "******************************************"

for i in range(1, 10):
    for j in range(1, i+1):
        print j, '*', i, '=', i*j, '\t',
    print

print "*****************************************"

for i in range(1, 10):
    print
    for j in range(1, i+1):
        print "%d x %d = %d" % (i, j, i*j),

实例9:暂停一秒输出

# coding: UTF-8

import time

for i in range(10):
    time.sleep(1)
    print i

myD = {1: 'a', 2: 'b', 3: 'c'}
for key, value in dict.items(myD):
    print key, value
    time.sleep(1)

实例10:暂停一秒输出,并格式化当前时间

# coding: UTF-8

import time

for i in range(10):
    time.sleep(1)
    print time.time()
    print time.localtime(time.time())
#    print time.strftime('%Y-%m-%d', time.time()) //error
    print time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))

 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值