Python基础语法实战:九九乘法表、菱形与斐波那契数列代码解析
本文提供Python基础语法的四个经典练习实例,涵盖九九乘法表的多种打印方式、奇数行菱形的绘制逻辑、100以内斐波那契数列的生成,以及第101项的计算方法。通过具体代码示例,帮助初学者理解循环、条件判断及变量赋值的实际应用,适合Python入门者进行语法巩固与实战练习。
第一个实例演示如何打印九九乘法表。代码提供了两种实现思路:第一种仅输出计算结果,通过双重循环控制行与列;第二种则格式化输出完整的算式表达式,清晰展示乘法过程。此外,还展示了将矩阵转置后的打印效果,通过调整空格与循环范围,实现对角线排列的视觉效果。
#只打印结果
for i in range(1,10):
for j in range(1,i+1):
print(i*j,end=" ")
print()
#打印算数表达式
for i in range(1,10):
for j in range(1,i+1):
print("{0}*{1} = {2:2}".format(j,i,i*j),end=" ")
print()
1*1 = 1
1*2 = 2 2*2 = 4
1*3 = 3 2*3 = 6 3*3 = 9
1*4 = 4 2*4 = 8 3*4 = 12 4*4 = 16
1*5 = 5 2*5 = 10 3*5 = 15 4*5 = 20 5*5 = 25
1*6 = 6 2*6 = 12 3*6 = 18 4*6 = 24 5*6 = 30 6*6 = 36
1*7 = 7 2*7 = 14 3*7 = 21 4*7 = 28 5*7 = 35 6*7 = 42 7*7 = 49
1*8 = 8 2*8 = 16 3*8 = 24 4*8 = 32 5*8 = 40 6*8 = 48 7*8 = 56 8*8 = 64
1*9 = 9 2*9 = 18 3*9 = 27 4*9 = 36 5*9 = 45 6*9 = 54 7*9 = 63 8*9 = 72 9*9 = 81
#将打印矩阵转置一下
for i in range(1,10):
print(" " *10*(i-1), end = " ")
for j in range(i,10):
print("{0}*{1} = {2:<2}".format(i,j,i*j),end=" ")
print()
1*1 = 1 1*2 = 2 1*3 = 3 1*4 = 4 1*5 = 5 1*6 = 6 1*7 = 7 1*8 = 8 1*9 = 9
2*2 = 4 2*3 = 6 2*4 = 8 2*5 = 10 2*6 = 12 2*7 = 14 2*8 = 16 2*9 = 18
3*3 = 9 3*4 = 12 3*5 = 15 3*6 = 18 3*7 = 21 3*8 = 24 3*9 = 27
4*4 = 16 4*5 = 20 4*6 = 24 4*7 = 28 4*8 = 32 4*9 = 36
5*5 = 25 5*6 = 30 5*7 = 35 5*8 = 40 5*9 = 45
6*6 = 36 6*7 = 42 6*8 = 48 6*9 = 54
7*7 = 49 7*8 = 56 7*9 = 63
8*8 = 64 8*9 = 72
9*9 = 81
第二个实例关注如何打印一个行数为奇数的菱形图案。核心逻辑在于利用绝对值计算每行的前导空格数,并结合星号数量公式(总行数减去两倍空格数)进行输出。文章还延伸展示了两种变形:一是类似闪电形状的不对称菱形,通过判断当前行号是否为零来调整星号输出;二是掏空菱形的实现,通过判断是否为边缘行或内部行,分别填充实心或空心字符。
for i in range(-3,4):
prespace=(-i if i<0 else i)
print(" "*prespace + '*'*(7-2*prespace))
*
***
*****
*******
*****
***
*
#变形之打印一道闪电
while True:
line_max = int(input("please input a odd number: "))
if line_max % 2:
break
range_num = (line_max + 1)//2
for i in range(-range_num+1,range_num):
if i == 0:
print('*'*line_max)
elif i > 0:
print(' '*(range_num-1) + "*"*(range_num-i))
else:
print(' '*(-i) + '*'*(range_num+i))
*
**
***
*******
***
**
*
#变形之打印掏空的菱形
for i in range(-4,5):
if i == -4 or i == 4:
print('*'*9)
else:
prespace=(-i+1 if i<0 else i+1)
print("*"*prespace + ' '*(9-2*prespace) + "*"*prespace)
*********
**** ****
*** ***
** **
* *
** **
*** ***
**** ****
*********
第三个实例要求打印100以内的斐波那契数列。实现方式采用while循环,初始设定前两项为0和1。在循环条件(当前项小于等于100)满足时,依次打印当前项,并通过临时变量t保存当前值,随后更新f1为前两项之和,f0为原f1的值,从而推进数列生成。
f0, f1 = 0, 1 while f1 <= 100: print(f1, end = " ") t = f1 f1 = t + f0 f0 = t
第四个实例旨在计算斐波那契数列的第101项。这里展示了一种写法,并指出其可能存在理解上的难点,主要涉及Python中多变量赋值的执行顺序问题。代码尝试在循环中直接进行f0, f1 = f1, f0 + f1的赋值,需要明确Python解释器对这类复合赋值的处理机制,以确保计算结果的准确性。
f0, f1 = 0, 1 while f1 <= 100: print(f1) f0, f1 = f1, f0 + f1 #python对这样的赋值怎样处理
第五个实例提供了另一种求解斐波那契数列第101项的代码实现。该方法使用for循环从第3项遍历至第102项(对应第101项的计算),通过临时变量t辅助更新f0和f1的值。循环结束后,利用else子句打印最终的f1值,即所求的第101项结果。
f0, f1 = 0, 1 for i in range(3,102): t = f1 f1 = t + f0 f0 = t else: print(f1)
以上分享了Python基础语法的几个典型练习实例,包括乘法表、图形打印及数列计算。希望这些代码示例能为读者提供有价值的参考,欢迎进一步探索与实践,支持技术社区的内容分享。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









