python九九乘法表原理_Python入门17循环结构

68cc11a59dfeafe6bb3755bae742ac16.gif

1.循环结构之while语句

注意:相同缩进量的语句在一起组成一个语句块。如果缩进不正确,会导致错误!

【例】累加

sum=0

n=99

while n>0:

   sum=sum+n

   n=n-2

print(sum)

运行结果:2500

【例】求斐波那契数列

斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13,……第0项是0,第1项是第一个1。从第三项开始,每一项都等于前两项之和。

n1=0

n2=1

count=2

nterms=int(input("斐波那契数列,你要几项:"))

print(n1,",",n2,end=", ")

while count

        nth=n1+n2

        print(nth,end=" , ")

        #更新值

        n1=n2

        n2=nth

        count+= 1

【例】输出以下图案:

6217136970d46d0a9381081d1bf87ae7.png

i=1

while i<6:

    j=0

    while j

        print("* ",end=' ')

        j+=1;

    print("\n")

    i+=1

【例】构造一个1, 3, 5, 7, ..., 99的列表

L = []

n = 1

while n <= 99:

    L.append(n)

    n= n + 2

print(L)

更简洁的代码见列表生成式

L =[i for i in range(1, 100, 2)]

print(L)

64826bdd13b470e2a124257f71dce4ad.png

2.循环结构之for……in语句

注意:相同缩进量的语句在一起组成一个语句块。如果缩进不正确,会导致错误!

for……in……循环

for 变量名字 in 范围(序列)

……

【例】输出列表中的元素

names=['Michael',"Bob",'Tracy',"小明"]

for name in names:

print(name,end='\t')

dbdcb8550a18e05c03fd61d5cb552e40.png

也可以利用索引(下标)输出列表中的元素

names=['Michael',"Bob",'Tracy',"小明"]

n=len(names)

for i in range(n):

print(names[i],end='\t')

运行结果相同

累加1+2+3+……+100

sum=0

for i in range(1,101):

    sum+=i

print(sum)

print(i)

运行结果:

5050

100

【例】累加100以内的奇数和,即1+3+5+7+……+99

sum=0

for i in range(1,101,2):

    sum+=i

print(sum)

print(i)

运行结果:

2500

99

【例】随机产生十个-5~9之间的整数,并求它们的和

import random#导入random模块

sum=0

for i in range(10):

        j=random.randint(-5,9)#使用random模块的randint()函数来生成随机数

        print(j,end=',')

        sum+=j

print('\n'f"sum={sum}")

【例】找出1000以内的所有完数

一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。

from math import sqrt

n = int(input('输入一个数字:'))

sum = n*-1

k = int(sqrt(n))

for i in range(1,k+1):

    if n%i == 0:

        sum += n/i

        sum += i

if sum == n:

    print('YES')

else:

print('NO')

0b7cc292b2f9b9ffa4c99fa0b4dbde18.png

【例】

for letter in 'Python':#遍历'Python'这一个字符串

    print('当前字母',letter)

fruits=["banana","apple","mango"]

for index in range(len(fruits)):#通过索引遍历列表中的三个字符串

    print("当前水果:",fruits[index])

print(fruits)#输出完整序列

for shuiguo in fruits:#另一个方法循环遍历列表中的三个字符串

    print("当前水果:",shuiguo)

print(shuiguo)

print(fruits)

3a1b4928ce6c2f458ededa8d0c9201e0.png

【例】二维列表双重循环

a=[]

for i in range(2):

    a.append([])

    for j in range(2):

        v=int(input("请输入元素:"))

        a[i].append(v)

print(a)

4799594b03f933a799d4f9b216c2f434.png

【例】打印九九乘法表(左下角形式)

for i in range(1,10):

    for j in range(1,i+1):

        print(f"{j}×{i}={i*j}",end="\t")#一种格式化输出

    print(" ")

或者:

for i in range(1,10):

    for j in range(1,i+1):

       print("%d*%d=%-3d"%(i,j,i*j),end="\t")#传统格式化输出

    print(" ")

f5a828d22fe103ede338a5886b649787.png

【例】打印九九乘法表(左上角形式)

for i in range(1,10):

    for j in range(i,10):

       print(f"{i}×{j}={i*j}",end="\t")#

    print(" ")

c691275607f4325403aea835d71e22b6.png

【例】把九九乘法表的每个式子的结果存放到二维列表中,然后输出九九乘法表

list1=[[i*j for j in range(i,10)] for i in range(1,10)]

for i in range(9):

  print(list1[i])

print("\n")

for i in range(1,10):

  for j in range(i,10):

    print(f"{i}×{j}={list1[i-1][j-i]}",end="\t")#print(" ")

145bc5eff3e93f2ecb6cf3baf522ed63.png

也可以写成如下代码:

list1=[[i*j for j in range(i,10)] for i in range(1,10)]

for i in range(9):

  print(list1[i])

print("\n")

for i in range(9):

  for j in range(0,9-i):

    print(f"{i+1}×{i+1+j}={list1[i][j]}",end="\t")#print("")

运行结果同上。

989df6433df716227fcbb881153285d5.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值