Python基础语法实战:九九乘法表、菱形与斐波那契数列代码解析

Cora
Cora
发布时间:2026-10-12| 3人浏览过
原创

本文提供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基础语法的几个典型练习实例,包括乘法表、图形打印及数列计算。希望这些代码示例能为读者提供有价值的参考,欢迎进一步探索与实践,支持技术社区的内容分享。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。