• if;else,缩进
    • A:if的基础格式和缩进
    • B:循环判断
    • C:range()函数和len()函数
    • D:break,contiue和pass语句
  • for,while循环
  • 函数基础
    • A:函数的定义和返回值
    • B:返回值的三种情况
    • C:函数的注释
  • 函数的进阶(命名空间和作用域)

    • A:内置命名空间
    • B:全局命名空间
    • C:局部命名空间
    • D:全局作用域
    • E:局部作用域
    • F:函数的嵌套和作用域链
    • G:函数名的本质
  • 闭包


♣一:if;else和缩进

A:if的基础格式和缩进

我们先看看if判断和循环能做什么。

在生产环境中,将会大量用到判断循环,来将一个需要重复执行的操作简化执行,如果没有判断循环,代码就和记流水账一样麻烦,会加大人工时间成本,比如说我要打印1到100的数字,按照普通的方式打印print(1)........print(100),需要输入100行相同的语句,会很麻烦,但是如果用循环判断,简单的几行就可以写出来。

打印0到20的数字:

#coding=gbk
a = 1                       #定义变量的初始值是1
b = 21                      #定义打印数字的结束值21,为什么是21要看下的a < b判断语句
for a in range(21):        #for语句后面的range(21)在此是要for循环执行21次
    if a < b:              #1是否小于21,小于就执行下面的print语句
        print(a, end=",")  #上面的if条件满足就执行打印操作。
#执行结果
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,

在上述的循环判断中,可以看到我们已经实现了0到20的数字打印,也基础的了解到了循环判断的用法,python的条件判断是通过代码块里面的运算符来控制输出的内容,前面基础篇(一)里面我们介绍了基础的运算符,现在就可以在循环判断里面进行实现重复的工作。

接下来我们通过if的基本模式来认识if的执行过程。

现在有一个要求:评判整个班级的分数等级,1;大于50小于65的学生需要每天晚自习到9点,2;大于65小于85的晚自习到8点,3;大于85小于100的晚自习到7点, 4;其余的晚自习到10点。

#coding=gbk
score = int(input("请输入你的分数:\n"))    #在用户输入的时候就需要指定输入的类型,否则后面程序执行会报类型错误
if score >= 50 and score <= 65:            #程序要求大于和小于某一个数字,但是在代码里面需要考虑到用户输入的数字是等于设定值的情况下,怎么处理
    print("你需要晚自习到9点")              #当用户输入数字了,那么该数字会和下面的每一条判断语句中的条件进行比对,满足指定的条件就会返回相应的结果
elif score >= 65 and score <= 85:
    print("你需要晚自习到8点")
elif score >= 85 and score <= 100:       #在每句判断语句结束之后必须要加上冒号(:),这个也是最基本的语法要求,而且接下来的打印语句前面是带空格的,这个也是python有别于其他语言的地方,在java语言里面可能看到判断
    print("你需要晚自习到7点")              #语句后面是一对{花括号},这个是让程序知道一段代码的作用域就是靠{花括号}来定义的,这样程序就知道这个判断是要执行这个作用域下面的语句,而python就是靠缩进来定义作用域
else:                                    #的,而且这个缩进标准就是4个空格,大家默认都是这么遵守的,而且代码越复杂,缩进就越多,这个也成了python的特点,强制缩进。
    print("你需要晚自习到10点")
#执行结果:
请输入你的分数:                            #后面执行代码如果出现IndentationError错误的,就是语法缩进有错误。
20
你需要晚自习到10点
请输入你的分数:
90
你需要晚自习到7点                                                                    

可以通过下图来简单了解下语句执行的过程:

  注:

  • python里面每个条件语句后面都需要加冒号(:),表示满足条件之后接下来要执行的代码块,如果不加就会报错。
  • 使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
  • python中用elif替代了else if,语句形式为if xxxx:elif xxxx:else xxxx:
  • 在Python中没有switch – case语句。

 B:循环判断:

上面的if判断只能满足一次执行,一般在需要输入密码的地方都是需要限定次数的,如果超过这个次数限制可能就是有人在暴力破解,所以按照上面的代码是不能实现的,永远只能匹配到一次正确的,如果是本人不小心输错密码,直接终止了程序,那还需要重新执行下程序,这个是及其不友好的,所以就需要我们加上计数器这样的代码。

#coding=gbk
y = 1
username = "克鲁斯"
password = 123123
while True:
    user = input("请输入用户名:\n")
    ps = int(input("请输入密码:\n"))
    if user == username and ps == password:
        print("欢迎回来,%s" %user)
        break
    else:
        y += 1                                            #通过y定义的初始值,当每次循环到这里的时候就加1,然后再去执行下一次循环,当y > 3了,就执行break的操作
        if y > 3:                                         #通过计数器的功能,可以让循环可控。
            print("密码错误次数太多,请20秒之后在重新登录")
            break                                         #break是结束退出本次循环,还有一个continue是跳出本次循环,进行下一次循环
            #exit()                                       #和break的功能类似
执行结果:登陆成功
请输入用户名:
克鲁斯
请输入密码:
1
请输入用户名:
克鲁斯
请输入密码:
123123
欢迎回来,克鲁斯
登陆失败:
请输入用户名:
克鲁斯
请输入密码:
1
请输入用户名:
克鲁斯
请输入密码:
123123
欢迎回来,克鲁斯

C:range()函数和len()函数:

range()函数和len()函数经常会在一起使用,range()函数用于快速生成一个有序的数字列,而且range只能在后面添加整数,len()函数用于返回列的索引,也就是前面说的下标,这两个会经常一起出现

一:
#coding=gbk
for i in range(10):
    print(i, end=",")
#执行结果:
0,1,2,3,4,5,6,7,8,9,

二:
for i in range(5,20):   #从5开始到20结束
    print(i, end=",")
#执行结果:
5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,

三:
#coding=gbk
for i in range(0,20 ,3):   #从0开始到20结束,每隔3位数打印一个数
    print(i, end=",")
#执行结果:
0,3,6,9,12,15,18,     #当然也可以打印负数
range()函数用法

相关文章:

  • 2022-12-23
  • 2021-10-01
  • 2022-02-04
  • 2022-12-23
  • 2021-08-27
  • 2022-12-23
  • 2021-12-05
猜你喜欢
  • 2021-04-15
  • 2022-01-31
  • 2021-06-22
  • 2022-03-05
  • 2022-02-14
  • 2022-12-23
相关资源
相似解决方案