python编程题.docx
《python编程题.docx》由会员分享,可在线阅读,更多相关《python编程题.docx(16页珍藏版)》请在冰点文库上搜索。
python编程题
1、
【参考代码】
x=eval(input("请输入所花钱x:
"))
ifx>=3000:
y=*x
elifx>=2000:
y=*x
elifx>=1000:
y=*x
else:
^
y=x
print("实际应付金额{:
.2f}元".format(y))
2、编写计算分段函数的程序:
输入x的值,输出函数y的值
【参考代码】
importmath
x=eval(input("请输入x的值:
"))
ifx>=5:
y=(x)+(x**2+1)
elifx>=0:
】
y=(x)+(x,5)+x**(1/5)
else:
y=(x)-x**3+3*x
print("分段函数y的值是:
",y)
3、编写程序,实现分段函数计算,如下表所示。
当x=7,输出y的值
【参考代码】
x=input('Pleaseinputx:
')
x=eval(x)
ifx<0orx>=20:
print(0)
%
elif0<=x<5:
print(x)
elif5<=x<10:
print(3*x-5)
elif10<=x<20:
print*x-2)
4、从键盘上任意输入一个自然数,判断数是否素数。
如输入11,则显示:
11是素数
【参考代码】
n=eval(input("请输入一个自然数:
"))
tag=True
foriinrange(2,n):
%
ifn%i==0:
tag=False
break
m="是素数"iftagelse"不是素数"
print(n,m)
5、编程求解一元二次方程
方程中的
系数从键盘输入(提示:
分支嵌套)
注解:
大部分情况下是根据求根公式来求解,即:
判别式:
利用一元二次方程根的判别式(
)可以判断方程的根的情况。
(
一元二次方程
的根与根的判别式有如下关系:
①当
时,方程有两个不相等的实数根;
②当
时,方程有两个相等的实数根;
③当
时,方程无实数根,但有2个共轭复根。
【参考代码】
importmath
a=eval(input("A="))
b=eval(input("B="))
c=eval(input("C="))
delta=b**2-4*a*c
)
ifa==0:
ifb==0:
print("方程无意义!
!
")
else:
x=-c/b
print("方程有单根:
",x)
else:
ifdelta>0:
q=(delta)/(2*a)
p=-b/(2*a)
x1=p+q
%
x2=p-q
print("两个不相等的实根",x1,x2)
elifdelta==0:
p=-b/(2*a)
print("两个相等的实根:
",p)
else:
print("方程无解!
")
6、编程产生菲波拉契数列20项,
例如:
01123581321……
【参考代码】
x0,x1=0,1
/
forninrange(0,20):
print(x0,end="")
x0,x1=x1,x0+x1
7、猴子摘桃
猴子第一天摘了若干个桃子,当天吃了一半,还不过隐,有多吃了一个,第二天早上又将剩下的桃子吃了一半,又多吃了一个,以后每天早上都吃了前一天剩下的一半零一个,到第10天早上想再吃时,见只剩下一个桃子,问第一天共摘了多少个桃子
【参考代码】
x=1
fordinrange(0,9):
x=(x+1)*2
print(x)
8、)
9、编程分别计算100以内(含100)奇数与偶数的和。
【参考代码】
s1,s2=0,0
foriinrange(1,101):
ifi%2==0:
s2=s2+i
else:
s1=s1+i
print("奇数的和是:
{},偶数的和是:
{}".format(s1,s2))
9、编程计算前30项的和:
s=1+(1+2)+(1+2+3)+(1+2+3+4)+…+(1+2+3+4+…+n)
【参考代码】
】
t,sum=0,0
foriinrange(1,31):
t=t+i
sum=sum+t
print("多项式前30项的和是:
",sum)
10、一个富翁试图与陌生人做一笔换钱生意,换钱规则为:
陌生人每天给富翁10万元钱,直到满一个月(30天);而富翁第一天给陌生人1分钱,第2天给2分钱,第3天给4分钱,…,富翁每天给穷人的钱是前一天的两倍,直到满一个月,分别显示富翁给陌生人的钱和陌生人给富翁的钱各是多少
【参考代码】
x0=
s=0
foriinrange(1,31):
【
s=s+100000
x1=2*x0
x0=x1
print("富翁赚的钱{:
.2f},陌生人赚的钱{:
.2f}".format(s,x0))
11、编写程序,运行后用户输入4位整数作为年份,判断其是否为闰年。
如果年份能被400整除,则为闰年;如果年份能被4整除但不能被100整除也为闰年。
【参考代码】
x=input('Pleaseinputanintegerof4digitsmeaningtheyear:
')
x=eval(x)
ifx%400==0or(x%4==0andnotx%100==0):
print('Yes')
…
else:
print('No')
12、一小球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米第10次反弹多高
【参考代码】
s=100
h0=100
foriinrange(1,10):
h1=h0/2
s=s+2*h1
h0=h1
;
print("小球一共经过了{:
.2f}米,第10次的高度{:
.2f}米".format(s,h0))
13、求阶乘:
从键盘输入任意一个正整数,编程计算该数的阶乘如:
输入5,阶乘结果120。
【参考代码】
n=eval(input("请输入一个正整数:
"))
p=1
foriinrange(1,n+1):
p=p*i
print("n!
=",p)
14、
【参考代码】
\
foriinrange(1,10):
forjinrange(1,i+1):
print("{}*{}={:
2d}".format(i,j,i*j),end="")
print()
15、
【参考代码】
forainrange(0,21):
forbinrange(0,34):
forcinrange(0,101):
ifa+b+c==100anda*5+b*3+c/3==100:
|
print(a,b,c)
16、
17、turle库绘制红色线条的六边形,线条大小5像素,每边长度80。
【参考代码】
importturtle
(5)
("red")
foriinrange(6):
]
(80)
(60)
18、
19、编写一个程序,接受逗号分隔的单词序列作为输入,按字母顺序排序后按逗号分隔的序列打印单词。
假设向程序提供以下输入:
without,hello,bag,world
则输出为:
bag,hello,without,world
'''
x=input("x=")
l=(",")
()
print(",".join(l))
20、编写一个程序来计算输入中单词的频率。
按字母顺序对键进行排序后输出。
假设为程序提供了以下输入:
NewtoPythonorchoosingbetweenPython2andPython3ReadPython2orPython3
然后,输出应该是:
2:
2
3:
2
New:
1
Python:
5
]
Read:
1
and:
1
between:
1
choosing:
1
or:
2
to:
1
'''
x=input("x=")
l=()
d={}
foriinl:
.
d[i]=(i,0)+1
l2=sorted(d)
foriinl2:
print("{}:
{}".format(i,d[i]))
21、依次输入三个整数放在一个列表中,请把这三个数由小到大输出。
l=[]
foriinrange(3):
x=int(input("x="))
(x)
()
foriinl:
)
print(i,end="")
22、使用列表生成式方法求解百钱买百鸡问题。
假设大鸡5元一只,中鸡3元一只,小鸡1元三只,
现有100元钱想买100只鸡,有多少种买法
l=[(i,j,k)foriinrange(0,100)forjinrange(0,100)forkinrange(0,100)ifi+j+k==100and5*i+3*j+k/3==100]
foriinl:
print(i)
23、使用给定的整数n,编写一个程序生成一个包含(i,i*i)的字典,该字典包含1到n之间的整数(两者都包含)。
然后程序应该打印字典。
假设向程序提供以下输入:
8
则输出为:
{1:
1,2:
4,3:
9,4:
16,5:
25,6:
36,,7:
49,8:
64}
>
'''
n=eval(input("n="))
d={}
foriinrange(1,n+1):
d[i]=i*i
print(d)
24、使用列表生成式随机产生10个两位的正整数,存入列表ls中,输出ls中的这10个随机数,
然后对这10个随机数求平均值,并输出统计高于平均值的数有多少个。
'''
fromrandomimport*
ls=[randint(10,99)foriinrange(10)]
:
print(ls)
aver=sum(ls)/len(ls)
n=0
foriinls:
ifi>aver:
n=n+1
print(n)
25、编写一个程序,输出2000到3200(含2000和3200)之间所有是7的倍数,但不是5的倍数的整数。
要求:
用列表保存符合条件的整数,输出结果各整数之间用逗号分隔,并输出在一行上。
l=[]
foriinrange(2000,3201):
ifi%7==0andi%5!
=0:
、
(str(i))
print(",".join(l))
26、编写一个程序,接收一系列单个空格分隔的单词作为输入,在删除所有重复的单词并按字母升序排序后打印这些单词。
假设向程序提供以下输入:
helloworldandpracticemakesperfectandhelloworldagain
则输出为:
againandhellomakesperfectpracticeworld
'''
x=input("x=")
l=()
s=set(l)
l2=list(s)
()
foriinl2:
print(i,end="")
27、编写一个接收句子并计算字母和数字的程序。
假设为程序提供了以下输入:
Helloworld!
123
然后,输出应该是:
字母10
数字3
'''
d={'字母':
0,'数字':
0}
$
x=input("x=")
foriinx:
if():
d['数字']=d['数字']+1
elif():
d['字母']=d['字母']+1
fork,vin():
print("{}{}".format(k,v))
28、使用列表生成式来求列表中的每个奇数。
该列表由一系列逗号分隔的数字输入。
假设为程序提供了以下输入:
[1,2,3,4,5,6,7,8,9]
然后,输出应该是:
[1,3,5,7,9]【参考代码】:
l=eval(input("l="))
l2=[iforiinlifi%2==1]
print(l2)
29、编写函数,模拟Python内置函数sorted()。
【参考代码】
defSorted(v):
t=v[:
:
]
r=[]
whilet:
tt=min(t)
(tt)
(tt)
returnr
30、编写函数,判断一个数字是否为素数,是则返回字符串YES,否则返回字符串NO。
【参考代码】
defIsPrime(n):
foriinrange(2,n):
ifn%i==0:
return'No'
else:
return'Yes'