python3实例100待续。。。

 

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

程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
"""


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):
                print (i,j,k)

输出结果:

1 2 3
1 2 4
1 3 2
1 3 4
1 4 2
1 4 3
2 1 3
2 1 4
2 3 1
2 3 4
2 4 1
2 4 3
3 1 2
3 1 4
3 2 1
3 2 4
3 4 1
3 4 2
4 1 2
4 1 3
4 2 1
4 2 3
4 3 1
4 3 2


# -*- coding: utf-8 -*-
"""
实例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,求应发放奖金总数?
"""


i=int(input('利润:'))
if i<=0:
    print( False)
elif i<=100000:
    p=i*0.1
elif i<=200000:
    p=(i-100000)*0.075+100000*0.1
elif i<=400000:
    p=(i-200000)*0.05
elif i<=600000:
    p=(i-400000)*0.03
elif i<=1000000:
    p=(i-600000)*0.015
else:
    p=(i-1000000)*0.01
print (p)
    

输出结果:

runfile('F:/lihuiyan/python/example1.py', wdir='F:/lihuiyan/python')

利润:120000
11500.0


# -*- coding: utf-8 -*-
"""
实例3
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

程序分析:

假设该数为 x。

1、则:x + 100 = n2, x + 100 + 168 = m2

2、计算等式:m2 - n2 = (m + n)(m - n) = 168

3、设置: m + n = i,m - n = j,i * j =168,i 和 j 至少一个是偶数

4、可得: m = (i + j) / 2, n = (i - j) / 2,i 和 j 要么都是偶数,要么都是奇数。

5、从 3 和 4 推导可知道,i 与 j 均是大于等于 2 的偶数。

6、由于 i * j = 168, j>=2,则 1 < i < 168 / 2 + 1。

7、接下来将 i 的所有数字循环计算即可。
"""


for i in range(1,85):
    if 168%i==0:
        j=168/i
        if i>j and (i+j)%2==0 and (i-j)%2==0:
            m=(i+j)/2
            n=(i-j)/2
            x=n*n-100
            print(x)
            

输出结果:

-99.0
21.0
261.0
1581.0


#实例4
#输入某年某月某日,判断这一天是这一年的第几天?
#!/usr/bin/python
# -*- coding: UTF-8 -*-
#判断闰年的方法:四年一闰,百年不闰,400年一闰
year=int(input('year:'))
month=int(input('month:'))
day=int(input('day:'))

months=[31,28,31,30,31,30,31,31,30,31,30,31]
months_1=[31,29,31,30,31,30,31,31,30,31,30,31]
days=0

#判断是否为闰年
if year%4==0 or year%400==0 and year % 100!= 0:
    for i in range(0,month-1):
        days+=months_1[i]
   
else:
    for i in range(0,month-1):
        days+=months[i]

days=days+day

print(days)

输出结果:

year:2015

month:6

day:7
158


#实例5
#对输入的三个数进行大小比较,并按从小到大的顺序进行排列
l=[];
for i in range (3):
    x=int(input('输入一个整数:'))
    l.append(x)
    
l.sort()

print(l)

    

输出结果:

输入一个整数:6

输入一个整数:7

输入一个整数:5
[5, 6, 7]


#实例6
#斐波那契数列
def fib(n):
    if n<0:
        return False
    if n==0 or n==1:
        return n
    else:
        return fib(n-1)+fib(n-2)
     
print(fib(10))

输出结果:55


#实例7
#将一个列表复制到另一个列表
a=[1,2,3]
b=a[:]
print('b=',b)

输出结果:

b= [1, 2, 3]


#实例8
#9*9乘法口诀
for i in range(1,10):
   
    for j in range(1,i+1):
        print('%d*%d= %d'%(j,i,i*j) ,end='  ')
        
    print()

输出结果:

1*1= 1  
1*2= 2  2*2= 4  
1*3= 3  2*3= 6   3*3= 9  
1*4= 4  2*4= 8   3*4= 12   4*4= 16  
1*5= 5  2*5= 10  3*5= 15  4*5= 20  5*5= 25  
1*6= 6  2*6= 12  3*6= 18  4*6= 24  5*6= 30  6*6= 36  
1*7= 7  2*7= 14  3*7= 21  4*7= 28  5*7= 35  6*7= 42  7*7= 49  
1*8= 8  2*8= 16  3*8= 24  4*8= 32  5*8= 40  6*8= 48  7*8= 56  8*8= 64  
1*9= 9  2*9= 18  3*9= 27  4*9= 36  5*9= 45  6*9= 54  7*9= 63  8*9= 72  9*9= 81


#实例9
#暂停1秒输出九九乘法口诀
import time
for i in range(1,10):
   
    for j in range(1,i+1):
        print('%d*%d= %d'%(j,i,i*j) ,end='  ')
        time.sleep(1)
    print()

输出结果:

1*1= 1  
1*2= 2  2*2= 4  
1*3= 3  2*3= 6   3*3= 9  
1*4= 4  2*4= 8   3*4= 12   4*4= 16  
1*5= 5  2*5= 10  3*5= 15  4*5= 20  5*5= 25  
1*6= 6  2*6= 12  3*6= 18  4*6= 24  5*6= 30  6*6= 36  
1*7= 7  2*7= 14  3*7= 21  4*7= 28  5*7= 35  6*7= 42  7*7= 49  
1*8= 8  2*8= 16  3*8= 24  4*8= 32  5*8= 40  6*8= 48  7*8= 56  8*8= 64  
1*9= 9  2*9= 18  3*9= 27  4*9= 36  5*9= 45  6*9= 54  7*9= 63  8*9= 72  9*9= 81


#实例10
#暂停1秒输出,并格式化当前时间
import time

print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))
time.sleep(1)
print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))

输出结果:

2018-11-28 20:07:05
2018-11-28 20:07:06


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

程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....
'''
def fib(n):
    if n==1 or n==2:
        return 1
    else:
        return fib(n-1)+fib(n-2)
    
 
n=int(input("输入一个月份:"))
print('%d 月份的兔子数为 %d' %(n,fib(n)))

输出结果:

输入一个月份:6
6 月份的兔子数为 8


'''
实例12
判断101-200之间有多少个素数,并输出所有素数。

程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),
如果能被整除,则表明此数不是素数,反之是素数。
'''
#import math 
#def analyze_primes(n):
#    x=math.ceil(math.sqrt(n))
#    for i in range(2,x):
#        if n%i==0:
#            print("%d is  not a prime" % n)
#            break
#    else:
#        print(" %d is a prime number!" % n)
#        
#        
#        
#    
#for i  in range(101,201):
#    analyze_primes(i)    
h = 0
leap = 1
from math import sqrt
from sys import stdout
for m in range(101,201):
    k = int(sqrt(m + 1))
    for i in range(2,k + 1):
        if m % i == 0:
            leap = 0
            break
    if leap == 1:
        print ('%-4d' % m)
        h += 1
        if h % 10 == 0:
            print ('')
    leap = 1
print ('The total is %d' % h)

输出结果:

101 
103 
107 
109 
113 
127 
131 
137 
139 
149 

151 
157 
163 
167 
173 
179 
181 
191 
193 
197 

199 
The total is 21


'''
实例13
打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
'''
for i in range(100,1000):
    x=int(i/100)
    y=int((i-x*100)/10)
    z=int(i-x*100-y*10)
    if x**3+y**3+z**3==i:
        print(i)
    

输出结果:

153
370
371
407


猜你喜欢

转载自blog.csdn.net/lhy2239705435/article/details/84024419