python提升1-20

1.有四个数字:1234,能组成多少个互不相同且无重复数字的三位数?各是多少?
for i in range(1, 5):
    for j in range(1, 5):
        for k in range(1, 5):
            if i != k and i != j and j != k:
                print i, j, k

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,求应发放奖金总数?
input = int(raw_input("净利润:"))
arr = [1000000, 600000, 400000, 200000, 100000, 0]
rat = [0.01, 0.015, 0.03, 0.05, 0.075, 0.1]
r = 0
for idx in range(0, 6):
    if input > arr[idx]:
        r += (input-arr[idx])*rat[idx]
        print (input-arr[idx])*rat[idx]
        input = arr[idx]
print r

3.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
for y in range(100000):
    for x in range(y):
        if x**2 + 168 == y**2:
            print x**2 - 100

4.输入某年某月某日,判断这一天是这一年的第几天?
p = [31,28,31,30,31,30,31,31,30,31,30,31] # 平年
w = [31,29,31,30,31,30,31,31,30,31,30,31] # 闰年

year =int(raw_input("年:\n"))
month =int(raw_input("月:\n"))
day =int(raw_input("日:\n"))

# 判断闰年,平年


d = []

if year % 100 == 0:
    if year % 400 == 0:
        d = w
    else:
        d = p
else:
     if year % 4 == 0:
         d = w
     else:
         d = p

days = sum(d[0:month-1])+day
print "%d.%d.%d是%d年的第%s天。"%(year,month,day,year,days)

5.输入某年某月某日,判断这一天是这一年的第几天?
l = []
for i in range(3):
    x = int(raw_input("请输入一个数"));
    l.append(x)
l.sort()
print l

6.斐波那契数列。
def fib(n):
    if n==1 or n==2:
        return 1
    return fib(n-1)+fib(n-2)

print fib(100)

7.将一个列表的数据复制到另一个列表中。
a = [1, 2, 3]
b = a[:]
print(b)

8.输出 9*9 乘法口诀表。
for i in range(1, 10):
    print
    for j in range(1, i+1):
        print "%d*%d=%d" % (i, j, i*j),

9.使用 time 模块的 sleep() 函数。
import time
myD = {1: 'A', 2: 'B'}
for key, value in dict.items(myD):
    time.sleep(2)
    print key, value

10.暂停一秒输出,并格式化当前时间。
import time
print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
11.兔子的规律为数列1,1,2,3,5,8,13,21....
def fib(n):
    if n == 1 or n == 2:
        return 1
    else:
        return fib(n-2) + fib(n-1)

for n in range(1,36):
    print fib(n)

12.判断101-200之间有多少个素数,并输出所有素数。
import math
l = []
for i in range(101, 200):
    for j in range(2, int(math.sqrt(i))+1):
        if i % j == 0:
           break
    else:               #只要循环不执行break而结束,就执行else
        l.append(i)

print len(l)
print l

13.打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
l = []
m = []
for i in range(1, 9):
    for j in range(0, 9):
        for k in range(0, 9):
            if i*100 + j*10 + k == i**3 + j**3 + k**3:
                l = [i, j, k]
                m.append(l)


print m

14.将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5def prime(n):
    l = []
    while n>1:
        for i in range(2,n+1):
            if n % i == 0 :
                n = int(n/i)
                l.append(i)
                break
    return l
n = int(input('请输入一个数:'))
print prime(n)

15.利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
def score(n):
    if n >= 90:
        return 'A'
    if n >= 60:
        return 'B'
    else:
        return 'C'
n = int(input('请输入一个数:'))
print score(n)

16.输出指定格式的日期。
import datetime

if __name__ == '__main__':
    # 输出今日日期,格式为 dd/mm/yyyy。更多选项可以查看 strftime() 方法
    print(datetime.date.today().strftime('%d/%m/%Y'))

    # 创建日期对象
    miyazakiBirthDate = datetime.date(1941, 1, 5)

    print(miyazakiBirthDate.strftime('%d/%m/%Y'))

    # 日期算术运算
    miyazakiBirthNextDay = miyazakiBirthDate + datetime.timedelta(days=1)

    print(miyazakiBirthNextDay.strftime('%d/%m/%Y'))

    # 日期替换
    miyazakiFirstBirthday = miyazakiBirthDate.replace(year=miyazakiBirthDate.year + 1)

    print(miyazakiFirstBirthday.strftime('%d/%m/%Y'))

17.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
str1 = raw_input("请输入字符串:")
print str1
print len(str1)
letters = 0
spaces = 0
digits = 0
others = 0
for s in str1:
    if s.isalpha():
        letters += 1
    elif s.isspace():
        spaces += 1
    elif s.isdigit():
        digits += 1
    else:
        others += 1

print letters, spaces, digits, others


18.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。
a = int(input('请输入一个数:a='))
n = int(input('请输入计算次数:n='))
sum = 0
total = 0
for i in range(n):
    sum += 10 ** i
    total += sum*a
print total


19.一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=123.编程找出1000以内的所有完数。

for i in range(1, 1001):
    sum = 0
    for j in range(1, i):
        if i % j == 0:
            sum += j
            pass
    if sum == i:
        print i


20.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
h = 100.0
high = [100.0]
for i in range(1, 11):
    h = h / 2
    high.append(h)
print sum(high)
print high[10]

猜你喜欢

转载自blog.csdn.net/dingming001/article/details/80288721