python整整200道面试技术题(网上搜集+自己总结)

“”""

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

2.利润<=10万,奖金可提10%;20万>利润>=10万,低于10万的部分按10%提成,高于10万按7.5%;

40万>利润>=20万,高于20万按5%;60万>利润>=40万,40万的部分按3%提成;

60万到100万之间,高于60万的部分,提成1.5%;高于100万时,超过100万的部分按1%

从键盘输入利润,求奖金

b1 = 100.1
b2 = b1 + 10
0.075
b3 = b2 + 200.05
b4 = b3 + 20
0.03
b5 = b4 + 40 * 0.015
b6 = b5 + 1000.01
i = int(input(‘请输入利润’))
if i<=10:
bou = i
0.1
elif i<20:
bou = b1+(i-10)*0.075
elif i<40:
bou = b2+(i-20)*0.05
elif i<60:
bou = b3+(i-40)*0.03
elif i<100:
bou = b4+(i-60)*0.015
else:
bou = b5+(i-100)*0.01
print(‘奖金总数:’,bou)

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

for i in range(100000):
if (i+100)**0.5int((i+100)**0.5) and (i+268)**0.5int((i+268)**0.5):
print(i)

4.要求输入某年某月某日,求判断输入日期是当年中的第几天?

year = int(input(‘年:’))
mouth = int(input(‘月:’))
day = int(input(‘日:’))
mouths=[0,31,59,90,120,151,181,212,243,273,304,334]
if 0<mouth<=12:
sum = mouths[mouth-1]
else:
print(‘请正确输入’)
sum+=day
leap = 0
if year%4000 or year%40 and year%100!=0:
leap = 1
if leap==1 and mouth>2:
sum+=1
print(sum)

5.任意三个整数类型,x、y、z,要求把这三个数,按照由小到大的顺序输出

lis = []
for i in range(3):
n = int(input(‘请输入数’))
lis.append(n)
lis = sorted(lis)
print(lis)

6.斐波那契数列

def fibo(param):
a,b=1,1
for i in range(param):
a,b=b,a+b
print(‘ab’,a,b)
print(a)
fibo(5)

7.九九乘法表

for i in range(1,10):
print(’’)
for j in range(1,10):
print(’{0}{1}={2}’.format(i,j,ij),end=’\t’)

8.时间格式化

import time,datetime
t = time.gmtime()
print(time.strftime("%Y-%m-%d %H:%M:%S",t))

9.一对可爱的兔子,出生后的第三个月开始,每一月都会生一对小兔子。当小兔子长到第三个月后,也会每个月再生一对小小兔子.假设兔子都不死的情况下,问每个月的兔子总数为多少?

a=int(input(‘请输入第几月:’))
m=1
n=1
l=[1,1]
if a1:
print(2)
if a
2:
print(2)
if a>2:
for i in range(1,a):
m,n=n,m+n
l.append(m)
print(‘列表’,l)
print(‘mn’,m,n)
print(l[-1]*2)

10.冒泡排序

l=[22,3,1,56,5,8,212,98]
for i in range(len(l)):
for j in range(i+1,len(l)):
if l[i]>l[j]:
k=l[j]
l[j]=l[i]
l[i]=k
print(l)

11.素数统计:素数是不能被1和本身之外的数整除的数

h = 0
leap = 1
from math import sqrt
from sys import stdout
for m in range(101,200):
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(’’)
pass
leap = 1
print(h)

12.水仙花数:水仙花数是指一个 n 位正整数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身

for n in range(100,1000):
i = n//100
j = n//10%10
k = n%10
if i3+j3+k**3==n:
print(n)

13.分解质因数

def reduce_num(n):
while n not in [1]:#无限循环包装递归
for index in range(2,int(n+1)):
if n%index0:
n/=index#n等于n/index
if n
1:
print(index)
else: #index一定是素数
print(’{} *’.format(index),end=’’)
break#关注break的位置
reduce_num(40)

14.a+aa+aaa+a…

a=input(‘请输入a的值:’)
n=int(input(‘请输入最大a的位数:’))
lis = []
lis_0 = []
for i in range(1,n+1):
print(a,i,ai)
lis.append(a
i)
print(lis)
for j in l:
l0.append(int(j))
print(sum(l0))

15.完数计算

from sys import stdout
for j in range(2,10000001):
k=[]
s=j
for i in range(1,j):
if j%i0:
s-=i
k.append(i)
if s
0:
print(j)
print(k)

17.皮球下落速度

q=100
l=50
for i in range(2,11):
q/=2
l+=2*q
print(l)
print(q)

18.猴子吃桃子

一只小猴子第一天摘下若干个桃子,并吃了一半。感觉到吃的还不瘾,于是又多吃了一个;第二天早上,又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上,都吃了前一天剩下的一半零一个。请问,到了第10天早上想再吃时,却发现只剩下一个桃子了。求第一天共摘了多少?

n=1 #吃完后某天桃子数为n
for i in range(1,10):
m=(n+1)*2 #逆向计算,桃子总数计算式
n=m #斐波那契数列的意思,替换
print(m)

19.比赛顺序排列

已知有两支乒乓球队要进行比赛,每队各出三人;甲队为a,b,c三人,乙队为x,y,z三人;已抽签决定比赛名单。

有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

a,b,c=ord(‘x’),ord(‘y’),ord(‘z’)
l=[]
for x in [ord(‘x’),ord(‘y’),ord(‘z’)]:
for y in [ord(‘x’),ord(‘y’),ord(‘z’)]:
for z in [ord(‘x’),ord(‘y’),ord(‘z’)]:
if a!=x and c!=x and c!=z and x!=y and x!=z and y!=z:
l.append(x)
l.append(y)
l.append(z)
print(l)
i=chr(l[0])
j=chr(l[1])
k=chr(l[2])
print(‘a–%s,b–%s,c–%s’%(i,j,k))
print(‘a–{0},b–{1},c–{2}’.format(i,j,k))

20.打印菱形图案

from sys import stdout
for i in range(4):
for j in range(2-i+1):
stdout.write(’ ‘)
for k in range(2i+1):
stdout.write(’
’)
print()
for i in range(3):
for j in range(i+1):
stdout.write(’ ‘)
for k in range(4-2i+1):
stdout.write(’
’)
print()

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

def fibo(n):#统计前n个分数的值
a=2
b=1
l=[2/1]
for i in range(n-1):
a,b=a+b,a
l.append(a/b)
return sum(l)
f=fibo(20)
print(f)

22.阶乘的运算

s=1
n=1
t=[]
for i in range(20):
s*=n
n+=1
t.append(s)#导入的每次迭代后s的值
print(t)
#方法二
l=[]
#a=1
def fibo(n):#统计前n个阶乘的和

a=1

    for i in range(1,n+1):
            a=1     #变量a每次此处迭代会刷新值为1重新开始
            for j in range(1,i+1):

global a#全局变量和局部变量产生的值不同,待释疑(因为在range之外定义变量,则不会刷新a值)

                    a*=j
                    #a+=j
            l.append(a)
    return sum(l)-1

f=fibo(20)
print(l)
print(f)

22.递归方法求阶乘
def fibo(n):
s=1
if n==1:#所谓递归,即使预先设定参数最小时的函数

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值