Python 练习

作者: Modelstrategy | 来源:发表于2017-12-12 23:12 被阅读0次
# 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
number_list = []

for i in range(1, 5):
    for j in range(1, 5):
        for k in range(1, 5):
            if (i!=j) and (k !=i) and (k!= j) and ( k != i):
                number_list.append(k*100 + j*10 + i)


print(len(number_list))
for num in number_list:
    print(num, end = " ")

# 题目:企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?
# 程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。

profit = 120000
num_axis = [1000000, 600000, 400000, 200000, 100000, 0]
rate = [0.01, 0.015, 0.03, 0.05, 0.075, 0.1]
bonus = 0

for i in range(0, 6):

    if profit > num_axis[i]:
       bonus += (profit - num_axis[i]) * rate[i]
       profit = num_axis[i]

print(bonus)

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

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

year = int(input('year\n'))
month = int(input('month\n'))
day = int(input('day\n'))
day_counter = 0
long_month = [12, 10, 8, 7, 5, 3, 1]



for i in range(0, 7):
    if month >= long_month[i]:
        if month > 2:  # 判断是否已过二月 如果没有过二月不需要判断是否为闰年
            if year % 4 != 0:  # 判断是否为闰年
                day_counter = (6 - i) * 31 + (month - (6 - i) - 2) * 30 + 28 + day
                break
            else:
                day_counter = (6 - i) * 31 + (month - (6 - i) - 2) * 30 + 29 + day
                break
        else:
            day_counter += (month - 1) * 30 + day
            break

print(day_counter)

# 输入三个整数x,y,z,请把这三个数由小到大输出。
# 排序?

my_list = []

for i in range(0, 3):
    number = int(input())
    my_list.append(number)

length = len(my_list)

for i in range(length):
    for j in range(length - 1):
        if my_list[j] > my_list[j+1]:
            my_list[j], my_list[j + 1] = my_list[j + 1], my_list[j]

print(my_list)



# 斐波那契数列

def fib(n):
    if n == 1 or n == 2:
        return 1

    else:
        return fib(n-1) + fib(n-2)  # wow!
    
print(fib(10))

# 题目:将一个列表的数据复制到另一个列表中。

new_list = my_list[:]
print('new list ', new_list)

new_new_list = my_list.copy()
print('new new list ', new_new_list)

# 题目:输出 9*9 乘法口诀表。
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in numbers:
    for j in numbers:
        print(i, '*', j, "=" , i*j, '\n', end = '',)

# 暂停一秒输出,并格式化当前时间。

import time
while 1:
    fmt = 'Es ist %Y-%B-%d, %A , Örtliche Zeit: %p %H:%M:%S'
    print(time.strftime(fmt, time.localtime()))
    time.sleep(1)

# 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,
# 问每个月的兔子总数为多少


# 判断101-200之间有多少个素数,并输出所有素数。
num = 0
for i in range(101, 201):
    for j in range(1, i - 1):
        if i / j == 0:
            break

        else:
            num+=1
print(num)

# 输出指定格式的日期。

from datetime import datetime
my_birth = datetime(2001, 1, 1)
format = '%d/%m/%Y'
print(my_birth.strftime(format))

# 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
# isspace, isdigit, isalpha 方法

string = input('你看心情随便按')
space_num = 0
digit_num = 0
alpha_num = 0
others_num = 0
for single in string:
    if single.isalpha():
        alpha_num += 1

    elif single.isspace():
        space_num += 1

    elif single.isdigit():
        digit_num += 1

    else:
        others_num += 1

print('space: %d digit: %d  alpha %d, and others: %d' % (space_num, digit_num, alpha_num, others_num))

# 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。
n = int(input('how many number should be added? \n'))
s = int(input('what number should be put into the list? \n'))
sL = []
temp = 0
from functools import reduce
for i in range(n):
    temp += s
    s = s * 10
    sL.append(temp)
    print(temp)

sum = reduce(lambda x,y : x + y, sL)
print(sum)

# 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

tour, height, times, current_height = [], [], 10, 100
for time in range(1, times + 1):
    if time == 1:
        tour.append(current_height)

    else:
        tour.append(2 * current_height)

    current_height /= 2


print('total distance: %d' % sum(tour))   # 有错的
print('last time height: %d' % current_height)  # 也是有错的

print('total distance: %f' % sum(tour))    # correct
print('last time height: %f' % current_height)  # correct

# 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
# 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
# 以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

peach_num = 1

for day in range(10, 1, -1):
    temp = ( peach_num + 1 ) * 2
    peach_num = temp

print(peach_num)

# 用递归重写

def peach_counter(day):
    if day == 10:
        return 1

    else:
        return (peach_counter(day + 1) + 1) * 2

print(peach_counter(1))

相关文章

网友评论

    本文标题:Python 练习

    本文链接:https://www.haomeiwen.com/subject/kcuoixtx.html