Python例题100道

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

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 k != j:
                print(i, j, k)
                count += 1

print("组成的数共有:%d 个" % count)

题目:企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?

while True:
    profit = int(input("Input the profit"))
    print("利润是 %d 万元" % profit)
    if profit <= 10:
        bonus = profit * 0.1
    elif profit > 10 and profit < 20:
        bonus = 10 * 0.1 + (profit - 10) * 0.075;
    elif profit >= 20 and profit < 40:
        bonus = 10 * 0.1 + (20 - 10) * 0.075 + 0.05 * (profit - 20)
    elif profit >= 40 and profit < 60:
        bonus = 10 * 0.1 + (20 - 10) * 0.075 + 0.05 * (40 - 20) + 0.03 * (profit - 40)
    elif profit >= 60 and profit < 100:
        10 * 0.1 + (20 - 10) * 0.075 + 0.05 * (40 - 20) + 0.03 * (60 - 40) + (profit - 60) * 0.015
    else:
        bonus = 10 * 0.1 + (20 - 10) * 0.075 + 0.05 * (40 - 20) + 0.03 * (60 - 40) + (100 - 60) * 0.015 + (profit - 100) * 0.01

    print("奖金是 %f 万元" %bonus)
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

res = 168 // 2
for i in range(1, res + 1):
    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 = m * m - 268
			print('这个数可能是: ', x)

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

list1 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
list2 = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

while True:
    year = int(input('输入年份'))
    month = int(input('输入月份'))
    day = int(input('输入日期'))
    sum = 0

    if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):
        for i in range(month - 1):
            sum += list2[i]
        sum += day
    else:
        for i in range(month - 1):
            sum += list1[i]
        sum += day

    print('这是第 %d 天' %sum)

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

while True:
    print('Input x, y, z:')
    arr = []
    for i in range(3):
        tmp = int(input())
        arr.append(tmp)
    arr.sort()
    print('三个数从小到大排序: ',  arr)

输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数。

mystring=input("输入一带有字母数字特殊符号的字符串:")
alpha=0
space=0
number=0
other=0
for i in mystring:
    if i>='a' and i<='z' or i>='A' and i<='Z':
        alpha+=1
    elif i>='0' and i<='9':
        number+=1
    elif i.isspace():
        space+=1
    else:
        other+=1
print(alpha,number,space,other)

s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。

import numpy as np
s=[]
for i in range(1,10): 
    x=[]
    for j in range(0,5):
        x.append(i*np.power(10,j))
        y=np.cumsum(x)
    s.append(y)     
np.sum(s,axis=1)  #1+11+111+1111+11111至9+99+999+9999+99999

找出1000以内的所有完数。一个数恰好等于其因子之和,这个数叫做完数,例如:

1+2+3=6
for x in range(1,1001):
    factor=[]
    for i in range(1,x):
        if x%i==0:
            factor.append(i)
    if sum(factor)==x:
        print(x)

两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。(巧用集合)

a=set(['x','y','z'])
b=set(['x','y','z'])
c=set(['x','y','z'])
c-=set(['x','z'])
a-=set(['x'])
for i in a:
    for j in b:
        for k in c:
            if len(set([i,j,k]))==3:
                print("a:%s,b:%s,c:%s"%(i,j,k))

打印出菱形图案

for i in range(4):
    for j in range(3-i):
        print(' ',end='')
    for k in range(2*i+1):
        print('*',end='')
    print('')
    
for i in range(3):
    for j in range(i+1):
        print(' ',end='')
    for k in range(5-2*i):
        print('*',end='')
    print('')

有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和

  a=1
    b=1
    S=[]
    S1=[]
    for i in range(20):
        s=a+b
        a=b
        b=s
        S.append(s)
    print(S) #分子

S1=[1]+S[:19] #分母
import numpy as np
S=np.array(S) #将列表转化为数组
S1=np.array(S1)
sum(S/S1)

求1+2!+3!+…+20!的和

for i in range(1,21):
    s=1
    S=0
    if i==1:
        S=1
    else:
        for j in range(1,i):
            s=s*j
            S=S+s
print("%d!+%d!+...+%d! = %d"%(1,2,20,S))

请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。

week={'w':'wednesday','f':'friday','m':'monday'}
weekt={'u':'tuesday','h':'thurday'}
weeks={'u':'sunday','a':'saturday'}

a=input("输入星期几的第一个字母:")

if a=='t':
    b=input("请再输入第二个字母:")
    for keyt in weekt.keys():
        if b==keyt:
            print(weekt[b].title())
elif a=='s':
    b=input("请再输入第二个字母:")
    for keys in weeks.keys():
        if b==keys:
            print(weeks[b].title())
else:
    print(week[a].title())

求3×3矩阵的对角元素之和

def tr(A):
    s=0
    for i in range(3):
        for j in range(3):
            if i==j:
                s+=A[i,j]
    return s
tr(np.array([[1,2,3],[2,3,4],[4,5,6]]))

有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中

x=[11,22,33,44,55,66,77,88,99] #以升序为例
y=int(input("插入数值:"))
if yx[len(x)-1]:
    x.insert(len(x),y)
else:
    for i in range(len(x)):
        if y>=x[i] and y<=x[i+1]:
            x.insert(i+1,y) 
            break
x

求输入数字的平方,如果平方运算后小于50则退出

while True:
    x=int(input("输入数字:"))
    print("%d^2=%d"%(x,x**2))
    if x**2<50:
        break

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

for x in range(1,5):
    for y in range(1,5):
           if (x!=y) :
                 print("%d%d" % (x, y))

输出 9*9 乘法口诀表。

for a in range(1,10):
    for b in range(1,a+1):
        print("""%a*%a=%a"""%(a,b,a*b),end=" ")
print()

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

shuixianhua=[]
for i in range(1,10):
  for j in range(10):
    for k in range(10):
      if i*i*i + j*j*j + k*k*k == 100*i + 10*j + k:
        shuixianhua.append(100*i + 10*j + k)
for i in shuixianhua:
  if i == shuixianhua[-1]:
    print(i)
  else:
    print(i, end = ',')

利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

  score= float(input("分数"))
if score >= 90:
    print("成绩为:%s" % ("A"))
elif score >= 60:
    print("成绩为:%s" % ("B"))
else:
    print("成绩为:%s" % ("C"))

利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

l=input('输入的5个字符')
L=[]
for i in range(1,len(l)+1):
    L.append(l[(-i)])
print(L)

6.有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

n = 10
for i in range(10, 0, -1):
    n = n+2
print(n)

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

n = 100
sum=0
for i in range(10, 0, -1):
        sum=sum+n+n/2
        n = n/2
print(n)
print(sum)

利用递归方法求3!。

n =3
def f(n):
    sum1 = 0
    if n == 0:
        sum1 = 1
    else:
        sum1 = n * f(n - 1)
    return sum1
print ('%d!=%d' %(n, f(n)))

给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

num=input('请输入一个不多于五位的正整数')
print('这是一个'+str(len(num))+'位数。')
print('倒过来:',''.join(list(reversed(num))))

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

n = 1
for i in range(10, 0, -1):
    n = (n+1) * 2
print(n)

输入四个整数a,b,c,d,请把这四个数由小到大输出。

x = int(input("Enter 1st Number: "))
y = int(input("Enter 2nd Number: "))
z = int(input("Enter 3rd Number: "))
n = int(input("Enter 4rd Number: "))
 
if x > y:
    x, y = y, x
if x > z:
    x, z = z, x
if x > n:
    x, n = n, x
if y > z:
    y, z = z, y
if y>n :
    y, n = n, y
if z>n : 
    z, n = n, z
print(x,y,z,n)

一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

n=int(input("请输入一个五位数"))
n=str(n)
m=n[::-1]
if(n==m):
    print("是回文数")
else:
    print("不是回文数")

你可能感兴趣的:(Python)