1-1 输出九九乘法表,课本P8
for i in range(1,10):
for j in range(1,i+1):
print(’%s*%s=%s’%(i,j,i*j),end=" ")
print()
3-1 课本P148
s=“abcdefgh”
while s:
a,*s=s #序列解包
print(a,s)
4-1 交换数值:课本P162
x=input(“请输入两个数字(以空格分隔):”)
a,b=map(int,x.split())
if a>b:
a,b=b,a
print(“交换结果:”,a,b)
4-2海伦公式:课本P163
a=float(input(“请输入1:”))
b=float(input(“请输入2:”))
c=float(input(“请输入3:”))
if a+b>c and b+c>a and c+a>b:
s=(a+b+c)/2
area=(s*(s-a)(s-b)(s-c))**0.5
print(“三角形的面积=%.2f” %area)
else:
print(“不能构成三角形”)
4-3 鸡兔同笼问题:课本P166
鸡+鸡=s,腿=t,兔=tu
s,t=map(int,input(“请输入鸡兔总数和腿总数,之间用空格分开:”).split())
tu=(t-s*2)/2
if int(tu)==tu:
print(“鸡:{0},兔:{1}”.format(int(s-tu),int(tu)))
else:
print(“输入的数据不正确,无解!!!”)
4-4 输入10个数,统计输入正数的个数 P180
i=k=0
while i<10:
n=input(“输入第”+str(i+1)+“数=”)
if not n.replace("-"," ").isdigit():
print(“输入的不是数字!请重新输入!”)
continue
else:
i=i+1
if int(n)<=0: #输入负数提前结束本轮循环,进入下一轮循环
continue #使continue控制循环
k=k+1
print(“10个数中正数的个数=”,k)
4-5 求二阶Fibonaci数列 P182
非递归:
def Fib(n):
if(n1 or n2):
return 1
else:
t1=1
t2=1
for i in range(3,n+1):
t3=t1+t2
t1=t2
t2=t3
return t3
n=int(input(“请输入一个正整数:”))
print(Fib(n))
递归:
def Fib(n):
if(n1 or n2):
return 1
else:
return Fib(n-1)+Fib(n-2)
n=int(input(“请输入一个正整数:”))
print(Fib(n))
4-6:输出由星号组成的菱形图案 P184
n=int(input(“请输入行数:”))
for i in range(1,n+1):
print((’’(i)).center(n3))
for j in range(n,0,-1):
print((’’(j)).center(n3))
4-7:数字组合, 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? 课本P184
count = 0 #计数器
for x in range(1,5):
for y in range(1,5):
for z in range(1,5):
if x!=y and x!=z and y!=z:
num=x100+y10+z
print(num,end= ‘’)
count += 1
print()
print(‘无重复数字的三位数的个数:’+str(count))
#方法二 列表推导式
num1 =[x100+y10+z for x in range(1,5) for y in range(1,5) for z in range(1,5) if x!=y and x!=z and y!=z]
print(num1)
4-6 判断101-200之间有多少个素数,并输出所有素数。课本P186
import math
count=0
for i in range(100,200):
for j in range(2,round(math.sqrt(i))+1): #round(),返回浮点数的四舍五入值
if i%j==0:
break
else:
print(i)
4-8 字符串构成,输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。课本P187
string=input(“请输入字符串:”)
alp=0 #字母
num=0 #数字
spa=0 #空格
oth=0 #其他
for i in range(len(string)):
if