1.输出9*9口诀。程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
for i in range(1,10):
for j in range(i,10):
print("{0}*{1}={2:2d}".format(i ,j ,i*j ),end=" ")
print(" ")
2.编写一个根据三条边长,判断三角形类型的函数。
若不能构成三角形,返回0;
若构成等边三角形,返回1;
若构成等腰三角形,返回2;
若构成直角三角形,返回3;
若是其他三角形,返回4。
a=int(input('请输入三角形第一个边长:'))
b=int(input('请输入三角形第二个边长:'))
c=int(input('请输入三角形第三个边长:'))
def sjx(a,b,c):
if a>0 and b>0 and c>0:
if a==b==c:
#构成等边三角形
return(1)
elif a==b and a!=c:
#构成等腰三角形
return(2)
elif a*a+b*b==c*c:
#构成直角三角形
return(3)
else:
#是其他三角形
return(4)
else:
return(0)#不能构成三角形
sjx(a,b,c)
3.有一个定义在自然数上的函数 f(x) 定义如下:
若 x <5 , 则 f(x) = x;
若 5<=x<15, 则 f(x) = x+6;
若 x>=15, 则 f(x) = x-6。
试编写该函数,输入x值,返回相应的f(x)值。
x=int(input('请输入x值:'))
def f(x):
if x < 5:
return(x)
elif 5<=x and x<=15:
return(x+6)
elif x>=15:
return(x-6)
else:
return(0)
f(x)
4.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。
import math
for n in range(-100,27956):
x = int(math.sqrt(100+n))
y = int(math.sqrt(100+168 + n))
if 100+n ==x*x and 268+n == y*y :
print(n)
5.输入一个整数(单位万元)来猜汽车价格,代码中设置汽车价格为25。根据所猜价格分别对应猜对了,猜高了,猜低了三种输出结果。
a=eval(input())
if a>25:
print("价格猜高了")
elif a==25:
print("价格猜对了")
else:
print("价格猜低了")
6. 输入某年某月某日,判断这一天是这一年的第几天?
程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
year=int(input('请输入年份:'))
mouth=int(input('请输入月份:'))
day=int(input('请输入日期:'))
mouths=[0,31,28,31,30,31,30,31,31,30,31,30,31]
if year%400==0 or year%4==0:
mouths[3]=mouths[3]+1
if 0<mouth<=12:
days=0
for item in range(mouth):
sum=mouths[item]
days=days+sum
day_s=days+day
print(f'这天是这年的第{day_s}天')
else:
print('输入日期超出范围')
7.题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
程序分析:兔子的规律为数列1,1,2,3,5,8,13,21….
rb = [0, 1]
mouth = int(input("请输入所求月份:"))
for i in range(1, mouth):
rb.append(rb[i] + rb[i-1])
print('第', mouth, '月有', rb[mouth], '对兔子')
8.编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变
import random
f=[random.randint(0,100) for i in range(20)]
print(f)
y=f[::2]
#print(y)
y.sort(reverse=True)
#print(y)
f[::2]=y
print(f)
9.判断101-200之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法,用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
for i in range(101,200):
for j in range(2,i):
if i%j==0:
break
else:
print(i,end=',')
10编写函数f(n)。利用递归方法求5!,即求出f(5)。
n=int(input('请输入数:'))
def f(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return (n * f(n-1))
f(n)