1、
【参考代码】
x=eval(input("请输入所花钱x:"))
if x>=3000:
y=0.7*x
elif x>=2000:
y=0.8*x
elif x>=1000:
y=0.9*x
else:
y=x
print("实际应付金额{:.2f}元".format(y))
2、 编写计算分段函数的程序:
输入x的值,输出函数y的值
【参考代码】
import math
x=eval(input("请输入x的值:"))
if x>=5:
y=math.sin(x)+math.sqrt(x**2+1)
elif x>=0:
y=math.exp(x)+math.log(x,5)+x**(1/5)
else:
y=math.cos(x)-x**3+3*x
print("分段函数y的值是:",y)
3、编写程序,实现分段函数计算,如下表所示。当x=7,输出y的值
【参考代码】
x = input('Please input x:')
x = eval(x)
if x<0 or x>=20:
print(0)
elif 0<=x<5:
print(x)
elif 5<=x<10:
print(3*x-5)
elif 10<=x<20:
print(0.5*x-2)
4、从键盘上任意输入一个自然数,判断数是否素数。如输入11,则显示:11是素数
【参考代码】
n=eval(input("请输入一个自然数:"))
tag=True
for i in range(2,n):
if n%i==0:
tag=False
break
m="是素数" if tag else "不是素数"
print(n,m)
5、编程求解一元二次方程
,方程中的
系数从键盘输入(提示:分支嵌套)
注解:
大部分情况下是根据求根公式来求解,即:
判别式:
利用一元二次方程根的判别式(
)可以判断方程的根的情况。
一元二次方程
的根与根的判别式 有如下关系:
①当
时,方程有两个不相等的实数根;
②当
时,方程有两个相等的实数根;
③当
时,方程无实数根,但有2个共轭复根。
【参考代码】
import math
a=eval(input("A="))
b=eval(input("B="))
c=eval(input("C="))
delta=b**2-4*a*c
if a==0:
if b==0:
print("方程无意义!!")
else:
x=-c/b
print("方程有单根:",x)
else:
if delta>0:
q=math.sqrt(delta)/(2*a)
p=-b/(2*a)
x1=p+q
x2=p-q
print("两个不相等的实根",x1,x2)
elif delta==0:
p=-b/(2*a)
print("两个相等的实根:",p)
else:
print("方程无解!")
6、编程产生菲波拉契数列20项,
例如:0 1 1 2 3 5 8 13 21 ……
【参考代码】
x0,x1=0,1
for n in range(0,20):
print(x0,end=" ")
x0,x1=x1,x0+x1
7、猴子摘桃
猴子第一天摘了若干个桃子,当天吃了一半,还不过隐,有多吃了一个,第二天早上又将剩下的桃子吃了一半,又多吃了一个,以后每天早上都吃了前一天剩下的一半零一个,到第10天早上想再吃时,见只剩下一个桃子,问第一天共摘了多少个桃子
【参考代码】
x=1
for d in range(0,9):
x=(x+1)*2
print(x)
编程分别计算100以内(含100)奇数与偶数的和。
【参考代码】
s1,s2=0,0
for i in range(1,101):
if i%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
for i in range(1,31):
t = t + i
sum = sum + t
print("多项式前30项的和是:",sum)
10、一个富翁试图与陌生人做一笔换钱生意,换钱规则为:陌生人每天给富翁10万元钱,直到满一个月(30天);而富翁第一天给陌生人1分钱,第2天给2分钱,第3天给4分钱,…,富翁每天给穷人的钱是前一天的两倍,直到满一个月,分别显示富翁给陌生人的钱和陌生人给富翁的钱各是多少?
【参考代码】
x0=0.01
s =0
for i in range(1,31):
s=s+100000
x1=2 * x0
x0=x1
print("富翁赚的钱{:.2f},陌生人赚的钱{:.2f}".format(s,x0))
11、编写程序,运行后用户输入4位整数作为年份,判断其是否为闰年。
如果年份能被400整除,则为闰年;如果年份能被4整除但不能被100整除也为闰年。
【参考代码】
x = input('Please input an integer of 4 digits meaning the year:')
x = eval(x)
if x%400==0 or (x%4==0 and not x%100==0):
print('Yes')
else:
print('No')
12、一小球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
【参考代码】
s=100
h0=100
for i in range(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
for i in range(1,n+1):
p=p*i
print("n!=",p)
14、
【参考代码】
for i in range(1,10):
for j in range(1,i+1):
print("{}*{}={:2d}" .format (i,j,i*j),end=" ")
print()
15、
【参考代码】
for a in range(0,21):
for b in range(0,34):
for c in range(0,101):
if a+b+c==100 and a*5+b*3+c/3==100:
print(a,b,c)
16、
17、turle库绘制红色线条的六边形,线条大小5像素,每边长度80。
【参考代码】
import turtle
turtle.pensize(5)
turtle.pencolor("red")
for i in range(6):
turtle.fd(80)
turtle.left(60)
18、
19、编写一个程序,接受逗号分隔的单词序列作为输入,按字母顺序排序后按逗号分隔的序列打印单词。假设向程序提供以下输入:
without,hello,bag,world
则输出为:
bag,hello,without,world
'''
x=input("x=")
l=x.split(",")
l.sort()
print(",".join(l))
20、编写一个程序来计算输入中单词的频率。 按字母顺序对键进行排序后输出。
假设为程序提供了以下输入:
New to Python or choosing between Python 2 and Python 3 Read Python 2 or Python 3
然后,输出应该是:
2:2
3:2
New:1
Python:5
Read:1
and:1
between:1
choosing:1
or:2
to:1
'''
x=input("x=")
l=x.split()
d={}
for i in l:
d[i]=d.get(i,0)+1
l2=sorted(d)
for i in l2:
print("{}:{}".format(i,d[i]))
21、依次输入三个整数放在一个列表中,请把这三个数由小到大输出。
l=[]
for i in range(3):
x=int(input("x="))
l.append(x)
l.sort()
for i in l:
print(i,end=" ")
22、使用列表生成式方法求解百钱买百鸡问题。
假设大鸡5元一只,中鸡3元一只,小鸡1元三只,
现有100元钱想买100只鸡,有多少种买法?
l=[(i,j,k) for i in range(0,100) for j in range(0,100) for k in range(0,100) if i+j+k==100 and 5*i+3*j+k/3==100]
for i in l:
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={}
for i in range(1,n+1):
d[i]=i*i
print(d)
24、使用列表生成式随机产生10个两位的正整数,存入列表ls中,输出ls中的这10个随机数,
然后对这10个随机数求平均值,并输出统计高于平均值的数有多少个。
'''
from random import *
ls=[randint(10,99) for i in range(10)]
print(ls)
aver=sum(ls)/len(ls)
n=0
for i in ls:
if i>aver:
n=n+1
print(n)
25、编写一个程序,输出2000到3200(含2000和3200)之间所有是7的倍数,但不是5的倍数的整数。要求:用列表保存符合条件的整数,输出结果各整数之间用逗号分隔,并输出在一行上。
l=[]
for i in range(2000,3201):
if i%7==0 and i%5!=0:
l.append(str(i))
print(",".join(l))
26、编写一个程序,接收一系列单个空格分隔的单词作为输入,在删除所有重复的单词并按字母升序排序后打印这些单词。
假设向程序提供以下输入:
hello world and practice makes perfect and hello world again
则输出为:
again and hello makes perfect practice world
'''
x=input("x=")
l=x.split()
s=set(l)
l2=list(s)
l2.sort()
for i in l2:
print(i,end=" ")
27、编写一个接收句子并计算字母和数字的程序。假设为程序提供了以下输入:
Hello world! 123
然后,输出应该是:
字母10
数字3
'''
d={'字母':0,'数字':0}
x=input("x=")
for i in x:
if i.isdigit():
d['数字']=d['数字']+1
elif i.isalpha():
d['字母']=d['字母']+1
for k,v in d.items():
print("{} {}".format(k,v))
28、使用列表生成式来求列表中的每个奇数。 该列表由一系列逗号分隔的数字输入。
假设为程序提供了以下输入:
[1,2,3,4,5,6,7,8,9]
然后,输出应该是:
[1,3,5,7,9]【参考代码】:
l=eval(input("l="))
l2=[ i for i in l if i%2==1]
print(l2)
29、编写函数,模拟Python内置函数sorted()。
【参考代码】
def Sorted(v):
t = v[::]
r = []
while t:
tt = min(t)
r.append(tt)
t.remove(tt)
return r
30、编写函数,判断一个数字是否为素数,是则返回字符串YES,否则返回字符串NO。
【参考代码】
def IsPrime(n):
for i in range(2,n):
if n%i==0:
return 'No'
else:
return 'Yes'