分享Python入门经典基础题(day4)附完整答案

继续分享Python入门基础题(day4)

1.有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)

2. 企业发放奖金根据利润提成,利润l低于等于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%,输入月利润l,求发放奖金总数

答:

l=int(input("请输入利润:"))
s=0
a=0
b=0
if l<=100000:
    s=l+l*0.1
elif l<=200000:
    a=(l-100000)*0.75
    b=100000*0.1
    s=a+l+a+b
elif l<=400000:
    a=(l-200000)*0.5
    s=l+a
elif l<=600000:
    a=(l-400000)*0.3
    s=l+a
elif l<=1000000:
    a=(1-600000)*1.5
    s=l+a
elif l>1000000:
    a=(l-1000000)*1
    s=l+a
print(s)

3.一个整数,加上100后是一个完全平方数,加上268也是一个完全平方数,请问该数是多少?

答:

import math
i=1
while i<=100000:
    x=int(math.sqrt(i+100))
    y=int(math.sqrt(i+268))
    if x*x==(i+100) and y*y==(i+268):
        print(i)
    i+=1

4.输入一个日期,判断这一天是这一年的第多少天?

答:

x=int(input("year"))
y=int(input("month"))
z=int(input("day"))
s=0

if x%4==0 and x%100!=0 or x%400==0:
    if x>2:
        s+=1
y1=[1,3,5,7,8,10,12]

for i in range(1,y):
    if i in y1:
        s=s+31
    elif i==2:
        s=s+28
    else:
        s=s+30

s=s+z
print(s)

5.利用条件运算符完成;学习成绩>=90分的同学用A表示,60-89分之间的同学用B表示,60分以下的同学用C表示

答:

s=int(input("请输入学习成绩:"))

if s>=90:
    print("A")
elif s>=60:
    print("B")
elif s<60:
    print("C")
  

6.求s=a+aa+aaa+aaaa+aaaaa+aa…a的值,其中a是数字.

答:

x=input("由几个数相加?:")              #比如由5个数相加 即为:*+**+***+****+*****
y=input("打印什么数?:")                #比如这个数为2 即为:2+22+222+2222+22222
s=''
s1=0
for i in range(int(x)):

    s=s+y
    s1=s1+int(s)

print(s1)

7.一个球从100米高空落下,每次落地后反跳回原来高度的一半;再落下,求它在第十次落地时,共经过多少米?第十次反弹多高?

答:

height=100                           #最开始高度为100
s=100                                #s=100为第一次下降的米数
for i in range (9):                  #因为前面把第一次的100米加上了,所以这里只循环9次

    height=height/2                  #循环9次,分别求出每次弹起的高度
    s=s+height*2                     #由于弹起还需要下落,所以height需要乘2,加上之前第一次的100米的距离,正好是10次的总距离.

print("第十次落地时,共经过了%f米,第十次反弹了%f米" %(s,height/2)) #由于只循环9次,所以再除以一次2,得出第十次反弹的高度.

8.一个学校,有3个办公室,现在有8位老师等待工位的分配,请编写程序,完成随机的分配

答:

import random

offices=[[],[],[]]

teachers=['A','B','C','D','E','F','G','H']

for i in teachers:
    a=random.randint(0,2)
    offices[a].append(i)

k=0
for j in offices:

    print("办公室{0}中{1}人,分别是:{2}".format(k,len(j),j))
    k=k+1

9.有一序列,2/1,3/2,5/3,8/5,13/8,21/13…求这个数列前20项和

答:

a=1.0
b=2.0
sum=0.0

for i in range(20):
   sum=sum+b/a        
   s=a+b                  
   a=b                 
   b=s                  

print(sum)

10.求1!+2!+3!..+20!的和

答:

def Jiecheng(m):
    p=1
    for i in range(1,m):
        p=p*i
    return p
s=0

for j in range(1,21):
    s=s+Jiecheng(j)

print(s)

11.使用递归方法求阶乘

答:

def Jiecheng(m):

    if m==1:
        return 1
    else:
        return m*Jiecheng(m-1)


for i in range(1,6):
    print("{0}!={1}".format(i,Jiecheng(i)))

12.使用递归函数方式实现输入一个字符串将其倒序输出

答:

def string(n):
    if len(n)<=1:
        return n
    else:
        return n[-1]+string(n[:-1])




x=input("请输入一个字符串:")
print(string(x))

13.五个人坐在一起,问第五个人多少岁?他说比第四个人大两岁,问第四个人他说比第三个人大两岁。。。第一个人10岁。求这第五个人多大了?

答:


def age(n):
    if n==1:
        s=10
    else:
        s=age(n-1)+2

    return s


print(age(5))

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

答:

x=input("请输入一个不超过5位的正整数:")

count=len(x)

e=int(x)%10                 #5
d=int(x)%100//10            #4
c=int(x)%1000//100          #3
b=int(x)//1000%10           #2
a=int(x)//10000             #1


if a!=0:
    print("这个数是5位数",e,d,c,b,a)
elif b!=0:
    print("这个数是4位数",e,d,c,b)
elif c!=0:
    print("这个数是3位数",e,d,c)
elif d!=0:
    print("这个数是2位数",e,d)
elif e!=0:
    print("这个数是1位数",e)
else:
    print("输入错误")

15.求一个3*3矩阵对角线元素之和

答:

a=[
    [1,2,3],
    [4,5,6],
    [7,8,9]
]
s=0
for i in range(3):
    for j in range(3):
        if i==j:
            s+=a[i][j]

print(s)

16.有一个已经排好的序列,现在输入一个数,要求按照原来的规律将其插入数列。

答:

s=[1,2,3,5,10]

x=int(input("请输入一个数:"))


if x>=s[len(s)-1]:
    s.append(x)
else:
    for i in range(len(s)):
        if x<=s[i]:
            s.insert(i,x)
            break


print(s)

你可能感兴趣的:(分享Python入门经典基础题(day4)附完整答案)