热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python教程分享Python 中的判断语句,循环语句,函数

1.判断语句1.1布尔类型和比较运算符1.1.1布尔类型布尔(bool)表达现实生活中的逻辑,即真和假:true表示真false表示假true和false的本质都是数字。true记

1. 判断语句

1.1 布尔类型和比较运算符

1.1.1 布尔类型

布尔(bool)表达现实生活中的逻辑,即真和假:

  • true 表示真
  • false 表示假

true 和 false 的本质都是数字。true 记作 1,false 记作 0。

定义变量存储布尔类型数据:变量名 = 布尔类型字面量

布尔类型不仅可以自行定义,也可以通过比较运算得到布尔类型的结果。

result = 10 > 5  print(f"result的值是{result},类型是{type(result)}")

输出结果:

result的值是true,类型是

1.1.2 比较运算符

Python 中的判断语句,循环语句,函数

1.2 if 语句

1.2.1 if 语句基本格式

if 语句基本格式:

if 要判断的条件: #不要忘记加冒号
    条件成立时,要做的事情 #前面有4个空格缩进

【例】结合前面学习的input输入语句,完成如下案例:

  • (1)通过input语句,获取键盘输入,为变量 age 赋值。(注意转换成数字类型)
  • (2) 通过 if 判断是否是成年人,满足条件则输出提示信息,

如下:

欢迎来到黑马儿童游乐场,儿童免费,成人收费。
请输入你的年龄:30
您已成年
游玩需要补票10元
祝您游玩愉快。

print("欢迎来到黑马儿童游乐场,儿童免费,成人收费。")  age = int(input("请输入你的年龄:"))#类型转换    if age >= 18:      print("您已成年") #有4格缩进      print("游玩需要补票10元")    print("祝您游玩愉快")

输出结果1:

欢迎来到黑马儿童游乐场,儿童免费,成人收费。
请输入你的年龄:20
您已成年
游玩需要补票10元
祝您游玩愉快

输出结果2:

欢迎来到黑马儿童游乐场,儿童免费,成人收费。
请输入你的年龄:10
祝您游玩愉快

1.2.2 if else 语句

print("欢迎来到黑马儿童游乐场,儿童免费,成人收费。")  age = int(input("请输入你的年龄:"))#类型转换    if age >= 18:      print("您已成年,游玩需要补票10元。")  else:#同样有冒号,且其中的语句有4个格缩进      print("您未成年,可以免费游玩")

1.2.3 if elif else 语句

print("欢迎来到黑马动物园")  if int(input("请输入你的身高(cm):")) <120:      print("您的身高小于120cm,可以免费游玩")  elif int(input("请输入vip等级:")) > 3:      print("您的vip等级大于3,可以免费游玩")  elif int(input("请告诉我今天几号:")) == 1:      print("今天是1号免费日,可以免费游玩")  else:      print("不好意思,您不满足免费游玩的条件,需购票")

1.2.4 判断语句的嵌套

基础语法格式如下:

if 条件1:
    满足条件1时做的事情1
    满足条件1时做的事情2
    if 条件2:
        满足条件2时做的事情1
        满足条件2时做的事情2

如上面代码,第二个 if 在第一个 if 内,只有满足第一个 if 的条件时,才会执行第二个 if。
嵌套的关键点在于:空格缩进。
python 就是通过空格缩进来决定语句之间的层次关系

print("欢迎来到黑马动物园")  if int(input("请输入你的身高(cm):")) > 120:      print("您的身高大于120cm,不能免费游玩")      print("不过,若您的vip等级超过3,可以免费游玩")      if int(input("请输入vip等级:")) > 3:          print("您的vip等级大于3,可以免费游玩")      else:          print("不好意思,您不满足免费游玩的条件,需购票")  else:      print("您的身高小于120cm,可以免费游玩")

2. 循环语句

2.1 while 循环

2.1.1 while 循环基础语法

while 条件:
    条件满足时,做的事情1
    条件满足时,做的事情2
    条件满足时,做的事情3
    &#8230;

【例】设置一个范围 1~100 的随机整数变量,通过 while 循环,配合 input 语句,判断输入的数字是否等于随机数。

要求:

  • (1)无限次机会,直到猜中为止;
  • (2)每一次猜不中,会提示大了或小了;
  • (3)猜完数字后,提示猜了几次。
import random  count = 0  num = random.randint(1,100)#生成1~100的随机整数,包括1和100    while true:      guess = int(input("请输入猜测的数字:"))      count += 1	#python中没有count++这种累加操作      if guess == num:          print("猜中了")          break      else:          if guess 

2.1.2 while 循环嵌套使用

while 条件1:
    条件1满足时,做的事情1
    条件1满足时,做的事情2
    条件1满足时,做的事情3
    &#8230;
    while 条件2:
        条件2满足时,做的事情1
        条件2满足时,做的事情2
        条件2满足时,做的事情3
        &#8230;

【例1】向小美表白 100 天,每天都送 10 朵玫瑰花。

i = 1  while i <= 100:      print(f"第{i}天表白")        j = 1      while j <= 10:          print(f"第{i}天,送的第{j}朵玫瑰花")          j += 1        print("小美,我喜欢你")      i += 1

补充知识

print 语句默认情况下,输出内容会自动换行,如下图:

Python 中的判断语句,循环语句,函数

在即将完成的案例中,需要使用 print 语句输出时不换行的功能,加上end=&#39;&#39;即可:

Python 中的判断语句,循环语句,函数

ps:end=&#39;&#39;使用了方法传参功能,后面会详细讲解。

【例2】打印九九乘法表

i = 1  while i <10:        j = 1      while j <= i:          print(f"{j} * {i} = {j * i}t", end = '')          j += 1        i += 1      print()

2.2 for 循环

2.2.1 for 循环基础语法

for 临时变量 in 待处理数据集(序列):
    循环满足条件时执行的代码

遍历字符串:

info = "hello"  for ch in info:      print(ch)

输出结果:

h
e
l
l
o

由此看出,与 while 循环不同,for 循环无法定义循环条件,只能从被处理的数据集里,依次取出内容进行处理。
所以,理论上讲,python 的 for 循环无法构建无限循环(被处理的数据集不可能无限大)

【例】统计 “itheima is a brand of itcast” 中有多少个 a。

name = "itheima is a brand of itcast"  count = 0  for ch in name:      if ch == 'a':          count += 1  print(f"共有{count}个a")	# 共有4个a

2.2.2 range 语句

for 循环语法中待处理数据集,严格来说,称为序列类型
序列类型:其内容可以一个个依次取出的一种类型,包括:字符串、列表、元组 等。
目前只介绍了字符串类型,其余类型后面会详细讲解。

由于现阶段只介绍了字符串,所以暂且只能通过 range 语句,可以获得一个简单的数字序列(range 语句还有其他用途,后面详讲)。

range(num):获取一个从 0 开始,到 num 结束的数字序列(不含 num 本身)

如:range(5) 取得的数据是:[0,1,2,3,4]

range(num1, num2):获得一个从 num1 开始,到 num2 结束的数字序列(不含 num2 本身)

如:range(5,10)取得的数据是:[5,6,7,8,9]

range (num1, num2, step):获得一个从 num1 开始,到 num2 结束的数字序列(不含 num2 本身)
数字之间的步长,以 step 为准(step 默认为1)

如:range(5,10,2) 取得的数据是:[5,7,9]

range 语句通常配合 for 使用:

for i in range(5):      print(i)

输出结果:

0
1
2
3
4

【例】

有了 range 语句,前面送 10 朵玫瑰花的操作也可以用 for 循环实现:

count = 0  for i in range(1, 100):      if i % 2 == 0:          count += 1    print(f"共有{count}个偶数")	# 共有49个偶数

2.2.3 变量作用域

如代码,思考:最后的 print 语句,能否访问到变量 i?

for i in range(5):  	print(i)  print(i)	# 能否访问到变量i?

规范上:不允许
实际上:可以,最后的 print 语句输出 4

回看 for 循环的语法:

for 临时变量 in 待处理数据集(序列):
    循环满足条件时执行的代码

我们会发现,将从数据集(序列)中取出的数据赋值给临时变量
该临时变量,在编程规范上,作用范围(作用域),限定在 for 循环内部。
如果在 for 循环外部访问该临时变量,实际上可以访问到;但在编程规范上,不允许、不建议这么做。

上面代码中,若想要在 for 循环外面使用 i,可以将 i 定义在 for 循环外面:

i = 0  for i in range(5):      print(i)  print(i)

2.2.4 for 循环嵌套使用

for 临时变量 in 待处理数据集(序列):
    循环满足条件应做的事情1
    循环满足条件应做的事情2
    循环满足条件应做的事情n
    for 临时变量 in 待处理数据集(序列):
        循环满足条件应做的事情1
        循环满足条件应做的事情2
        循环满足条件应做的事情n

【例】用 for 循环实现送小美 100 天玫瑰花,每天送 10 朵的功能。

for i in range(1, 101):      print(f"今天是向小美表白的第{i}天")        for j in range(1, 11):          print(f"送小美第{j}朵玫瑰花")        print("小美,我喜欢你")

目前学习了 2 个循环,while 循环和 for 循环。这两种循环可以相互嵌套

【例】用 for 循环打印九九乘法表。

for i in range(1, 10):      for j in range(1, 10):          if j <= i:              print(f"{j} * {i} = {j * i}t", end = '')      print()

2.3 break 和 continue

  • break:所在的循环完全结束。
  • continue:中断本次循环,直接进入下一次循环。

注意点:

  • (1)两者都可以用于 for 循环和 while 循环。
  • (2)在嵌套循环中,两者都只能作用于所在的循环,无法对上层循环起作用。

【例】某公司,账户余额有 1 w元,给 20 名员工发工资。规则:

  • (1)员工编号从 1 到 20,从编号1开始,依次领取工资,每人可领取 1000 元
  • (2)领工资时,财务判断员工的绩效分(1~10)(随机生成),如果低于 5,不发工资,换下一位。
  • (3)如果工资发完了,结束发工资。

输出格式如图:

Python 中的判断语句,循环语句,函数

import random  mOney= 10000  for i in range(1, 21):      if money <1000:          print("工资发完了,下个月领取吧")          break      score = random.randint(1, 10) #生成1~10的随机整数,包括1和10      if score <5:          print(f"员工{i},绩效分{score},低于5,不发工资,下一位")      else:          money -= 1000;          print(f"向员工{i}发放工资1000元,账户余额还剩余{money}元")

输出结果:

向员工1发放工资1000元,账户余额还剩余9000元
向员工2发放工资1000元,账户余额还剩余8000元
向员工3发放工资1000元,账户余额还剩余7000元
向员工4发放工资1000元,账户余额还剩余6000元
向员工5发放工资1000元,账户余额还剩余5000元
员工6,绩效分3,低于5,不发工资,下一位
向员工7发放工资1000元,账户余额还剩余4000元
向员工8发放工资1000元,账户余额还剩余3000元
向员工9发放工资1000元,账户余额还剩余2000元
员工10,绩效分3,低于5,不发工资,下一位
向员工11发放工资1000元,账户余额还剩余1000元
员工12,绩效分1,低于5,不发工资,下一位
向员工13发放工资1000元,账户余额还剩余0元
工资发完了,下个月领取吧

3. 函数

3.1 函数的定义

函数的定义:

def 函数名(传入参数):
    函数体
    return 返回值

函数的调用:

函数名(参数)

# 函数定义  def say_hello():      print("hello world")  # 函数调用  say_hello()	#输出 hello world

注意事项:

  • (1)参数如果不需要,可以省略(后续章节讲解)。
  • (2)返回值如果不需要,可以省略(后续章节讲解)。
  • (3)函数必须先定义后使用

3.2 函数的参数

# 函数定义  def add(x, y):      print(f"{x} + {y} = {x + y}")  # 函数调用  add(3, 4)

函数定义中的参数,称之为形式参数;
函数调用中的参数,称之为实际参数;
函数的参数数量不限,使用逗号分隔开;
传入参数的时候,要和形式参数一一对应(顺序、个数),逗号隔开。

3.3 函数的返回值

带返回值的函数的定义和调用:

# 函数定义  def add(x, y):      return x + y  # 函数调用  res = add(3, 4)  print(res)	#输出7

question:如果函数没有使用 return 语句返回数据,那么函数有返回值吗?
answer:有返回值。
why:python 中有一个特殊的字面量:none,其类型是:
无返回值的函数,实际上就是返回了:none 这个字面量,
函数返回 none,就表示没有返回什么有意义的内容,也就是返回了空的意思。

def say_he11o():      print("hello...")    result = say_he11o()  print(result)  print(type(result))

输出结果:

hello&#8230;
none

none可以主动使用 return 返回,效果等同于不写 return 语句:

def say_he11o():      print("hello...")      return none    result = say_he11o()  print(result)  print(type(result))

输出结果:

hello&#8230;
none

none 作为一个特殊的字面量,用于表示:空、无意义,其有非常多的应用场景。

  • 用于函数无返回值。
  • 用于 if 判断。在 if 判断中,none 等同于 false。在函数中可以主动返回 none,配合 if 判断做相关处理。
def check_age(age):      if age >= 18:          return "success"      else:          return none    result = check_age(16)  if not result:      print("未满18岁,不能进网吧")

用于声明无内容的变量。定义变量,但暂时不需要变量有具体值,可以用none来代替

#暂不赋予变量具体值  name = none

3.4 函数说明文档

虽然函数的说明文档只是注释,随便写也没啥,但最好要遵循一定的规范。
在函数内写引号一回车,就自动出现参数和返回值的说明头部(这就是规范)。这样就可以在此基础上继续补充。

Python 中的判断语句,循环语句,函数

写好函数说明文档后,将鼠标悬停在函数的上方,会出现函数的说明信息。

Python 中的判断语句,循环语句,函数

3.5 函数的嵌套调用

函数的嵌套调用:在一个函数中,调用另外一个函数。

def func_b():      print("---2---")    def func_a():      print("---1---")      func_b()      print("---3---")    func_a()  # 调用函数func_a

输出结果:

&#8212;1&#8212;
&#8212;2&#8212;
&#8212;3&#8212;

3.6 变量的作用域

变量主要分为两类:局部变量和全局变量。
局部变量:定义在函数体内部,只在函数内部生效。

def testa():      num = 100      print(num)  testa() # 100  print(num)#报错:name'num'is not defined

变量 a 定义在 testa 函数内部,在函数外部访问则立即报错。
局部变量的作用:在函数体内部,临时保存数据,当函数调用完成后销毁。

全局变量:在函数内、外都能生效的变量。
如果有一个数据,在函数 a 和函数 b 中都要使用,则可以将这个数据存储在一个全局变量中。

#定义全局变量num  num = 100  def testa():      print(num)  def testb():      print(num)        testa() #100  testb() #100

global 关键字

现在有个需求:在函数内部修改函数外的全局变量。

num = 200  def test_a():      print(f"test_a: {num}")    def test_b():      num = 500      print(f"test_b:{num}")        test_a()  test_b()  print(num)

上述代码输出结果:

test_a: 200
test_b:500
200

代码并没有修改全局变量的值。原因是 test_b() 中的 num 是一个局部变量,与全局变量 num 没有丝毫关系。
想要在函数内修改全局变量,可以使用 global 关键字。

num = 200  def test_a():      print(f"test_a: {num}")    def test_b():      global num #增加了global      num = 500      print(f"test_b:{num}")    test_a()  test_b()  print(num)

输出结果:

test_a: 200
test_b:500
500

上面代码中,global 关键字将 num 声明为全局变量,这样 test_b() 中的 num 与函数外的 num 就是同一个变量。

3.7 函数综合案例

银行系统查询余额、存款、取款、退出功能。
初始余额 5000000 元,进入系统时先输入姓名。

mOney= 5000000  name = input("请输入姓名:")   # 菜单  def menu():       print(f"{name},您好,欢迎来到黑马银行atm,请选择操作:")      print("查询余额t【输入1】")      print("存款tt【输入2】")      print("取款tt【输入3]")      print("退出tt【输入4】")      return input("请输入您的选择:")  # 查询余额  def query(show_header):       # 控制是否输出表头      if show_header:          print("-------------查询余额--------------")      print(f"{name},您好,您的余额剩余:{money}元")  # 取款  def save(deposit):       print("-------------存款--------------")      global money      money += deposit      print(f"{name},您好,您存款{deposit}元成功")      query(false)  # 存款  def get(withdraw):       print("-------------取款--------------")      global money      money -= withdraw      print(f"{name},您好,您取款{withdraw}元成功")      query(false)     while true:      choice = menu() # 用户选择      if choice == "1":          query(true)      elif choice == "2":          save(int(input("请输入要存入的金额:")))      elif choice == "3":          get(int(input("请输入要去除的金额:")))      else:          break  print("程序退出...")

到此这篇关于python 中的判断语句,循环语句,函数的文章就介绍到这了,更多相关python 判断语句和循环语句内容请搜索<编程笔记>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<编程笔记>!

需要了解更多python教程分享Python 中的判断语句,循环语句,函数,都可以关注python教程分享栏目&#8212;编程笔记


推荐阅读
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
  • 本文介绍了NetCore WebAPI开发的探索过程,包括新建项目、运行接口获取数据、跨平台部署等。同时还提供了客户端访问代码示例,包括Post函数、服务器post地址、api参数等。详细讲解了部署模式选择、框架依赖和独立部署的区别,以及在Windows和Linux平台上的部署方法。 ... [详细]
author-avatar
鲁尼杰
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有