python学习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言
通过python whlie和for语句输出九九乘法表

一、whlie循环

通过whlie循环,输出如下九九乘法表
1.控制行的循环i<=9
2.控制每一行输出的循环j<=i # print (j*i,end=‘’)
定义外层循环的控制变量

i=1
while i <= 9:
    #  定义内层循环的控制变量
    j = 1
    while j <= i:
                #内层循环的print语句,不要换行,\t制表符进行对齐
                print(f"{j}*{i}={j*i}\t",end='')
                j += 1
    i += 1
    print()
    #  print空内容,就是一个换行

二、for循环

演示for循环打印九九乘法表
for 临时变量 in 待处理数据集:
循环满足条件时执行的代码

#定义字符串name
name = ”itheima”
#for循环处理字符串
for x in name:
print(x)
**同while循环不同,for循环是无法定义循环条件的。
只能从被处理的数据集中,依次取出内容进行处理。
1. for循环的语法格式是:
for 临时变量 in 待处理数据集:
循环满足条件时执行的代码
(语法中的:待处理数据集,严格来说,称之为:可迭代类型
可迭代类型指,其内容可以一个个依次取出的一种类型,包括:
字符串、列表、元组、等)
2. for循环的注意点
无法定义循环条件,只能被动取出数据处理
要注意,循环内的语句,需要有空格缩进

三、range语句

语法1:range(num)
获取一个从0开始,到num结束的数字序列(不含num本身)
如range(5)取得的数据是:[0, 1, 2, 3, 4]
语法2:range(num,num2)
获得一个从num1开始,到num2结束的数字序列(不含num2本身)
如,range(5, 10)取得的数据是:[5, 6, 7, 8, 9]
语法3:range(num,num2,step)

获得一个从num1开始,到num2结束的数字序列(不含num2本身)
数字之间的步长,以step为准(step默认为1)
如,range(5, 10, 2)取得的数据是:[5, 7, 9]
for循环处理字符串
for i in range(5):
print(i)

三、 for循环的变量作用域

回看for循环的语法,我们会发现,将从数据集(序列)中取出的数据赋值给:临时变量
为什么是临时的呢?

临时变量,在编程规范上,作用范围(作用域),只限定在for循环内部

如果在for循环外部访问临时变量:
实际上是可以访问到的
在编程规范上,是不允许、不建议这么做的

如果实在需要在循环外访问循环内的临时变量,可以在循环外预先定义
在这里插入图片描
如图,每一次循环的时候,都会将取出的值赋予i变量。
由于i变量是在循环之前(外)定义的
在循环外访问i变量是合理的、允许的

四、for循环的嵌套应用

  1. for循环的嵌套语法:
    在这里插入图片描述
  2. 注意事项:
    需要注意缩进,嵌套for循环同样通过缩进确定层次关系
    for循环和while循环可以相互嵌套使用
    九九乘法表

for i in range (1,10):
    # 通过内层循环控制每一行的变量
    for j in range (1,i + 1):
        # 在内层循环中输出每一行的内容
        print (f"{j} * {i} = {j*i}\t", end='')
    # 外层循环可以通过print输出一个回车符
    print()

五、循环中断 break和continue

continue
continue关键字用于:中断本次循环,直接进入下一次循环
continue可以用于: for循环和while循环,效果一致
break
break关键字用于:直接结束所在循环
break可以用于: for循环和while循环,效果一致

六、练习案例

某公司,账户余额有1W元,给20名员工发工资。
员工编号从1到20,从编号1开始,依次领取工资,每人可领取1000元
领工资时,财务判断员工的绩效分(1-10)(随机生成),如果低于5,不发工资,换下一位
如果工资发完了,结束发工资。
代码:

 # 发工资案例
 # 定义账户余额变量
money = 10000
 # 通过for循环对员工发放工资
for i in range(1,12):
    import random
    score = random.randint(1,10)

    if score < 5:
        print(f"员工{i}绩效分{score},不满足,不发工资,下一位")
        # continue跳过发放

    # 要判断余额足不足
    if money >= 1000:
        money -= 1000
        print(f"员工{i},满足条件发放工资1000,公司账户余额:{money}")
    else:
        print(f"余额不足,当前余额:{money}元,不足以发工资,不发了,下个月再来")
        # break结束发放
        break 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值