首页 > 流程控制if、while、for

流程控制if、while、for

if判断

  if判断想执行第一个条件,if后的判断必须是True

1 什么是if判断

  判断一个条件如果成立则做...不成立则做....

2 为何要有if判断

  让计算机能够像人一样具有判断的能力

3 如何用if判断

语法1:

  if 条件1:code1code2code3......

语法2:if-else

  if 条件:code1code2code3......else:code1code2code3......

语法3:嵌套

   if 条件1:if 条件2:code1code2code3code2code3......

语法4:elif   

     if 条件1:子代码块1elif 条件2:子代码块2elif 条件3:子代码块3elif 条件4:子代码块4.........else:子代码块5



 代码练习

score = input('your score>>: ')
score=int(score)
if score >= 90:  #不满足的必然小于90,elif只需要>=80就行,不用判断与90的关系print('优秀')
elif score >= 80:print('良好')
elif score >= 70:print('普通')
else:print('很差')

 while循环判断

1. 什么是循环

  循环指的是一个重复做某件事的过程



2. 为何要有循环

  为了让计算机能够像人一样重复做某件事

3. 如何用循环

while循环的语法:while循环又称为条件循环,循环的次数取决于条件

     while 条件:

      子代码1

      子代码2

      子代码3

登录账号密码验证:

1  print('start....')
2  while True:
3      name=input('please your name>>: ')
4      pwd=input('please your password>>: ')
5      if name == 'egon' and pwd == '123':
6          print('login successful')
7      else:
8          print('user or password err')
9  print('end...')

结束while循环的方式:

 方式一:操作while循环的条件让其结束

  控制条件的两种方式:

判断count:
count=1
while count < 6:print(count)count+=1判断布尔
tag=True
count=1
while tag:if count > 5:tag=Falseprint(count)count+=1

 

 1  print('start....')
 2  tag=True
 3  while tag:
 4      name=input('please your name>>: ')
 5      pwd=input('please your password>>: ')
 6      if name == 'egon' and pwd == '123':
 7          print('login successful')
 8          tag=False
 9      else:
10          print('user or password err')
11 
12  print('end...')

 方式二: break强行终止本层循环

 1  print('start....')
 2  while True:
 3      name=input('please your name>>: ')
 4      pwd=input('please your password>>: ')
 5      if name == 'egon' and pwd == '123':
 6          print('login successful')
 7          break
 8      else:
 9          print('user or password err')
10 
11  print('end...')

输错三次账号或密码直接退出

 1  方式一:
 2  print('start....')
 3  count=0
 4  while count <= 2: #count=3
 5      name=input('please your name>>: ')
 6      pwd=input('please your password>>: ')
 7      if name == 'egon' and pwd == '123':
 8          print('login successful')
 9          break
10      else:
11          print('user or password err')
12          count+=1
13 
14  print('end...')
15 
16 
17  方式二:
18  print('start....')
19  count=0
20  while True:
21      if count == 3:
22          print('输错的次数过多傻叉')
23          break
24      name=input('please your name>>: ')
25      pwd=input('please your password>>: ')
26      if name == 'egon' and pwd == '123':
27          print('login successful')
28          break
29      else:
30          print('user or password err')
31          count+=1
32 
33  print('end...')

 

continue :结束本次循环,直接进入下一次

break :结束本层循环
count=1while count < 6:if count ==  4:count+=1 #如果不加一,会进入死循环continue # 只能在cotinue同一级别之前加代码,之后的代码不会执行print(count) #print 不能放在if之前,否则排除不了4count+=1while True:print('11111')print('22222')print('333')continue # 不应该将continue作为循环体最后一步执行的代码反正也会重新开始循环,相当于多此一举

while+elsecount=1while count < 6:if count == 4:breakprint(count)count+=1else:print('会在while循环没有被break终止的情况下执行')#如果while循环被终止了的话,else后的代码不会执行

输错三次则退出之while+else的应用代码:

 1  print('start....')
 2  count=0
 3  while count <= 2: #count=0,1,2  3的时候是第四次
 4      name=input('please your name>>: ')
 5      pwd=input('please your password>>: ')
 6      if name == 'egon' and pwd == '123':
 7          print('login successful')
 8          break
 9      else:
10          print('user or password err')
11          count+=1
12  else:
13      print('输错的次数过多')
14 
15  print('end...')
while循环的嵌套,内部循环输入4,直接退出程序,即退出两个循环



复杂版:

 1  name_of_db='egon'
 2  pwd_of_db='123'
 3  print('start....')
 4  count=0
 5  while count <= 2: #count=3
 6      name=input('please your name>>: ')
 7      pwd=input('please your password>>: ')
 8      if name == name_of_db and pwd == pwd_of_db:
 9          print('login successful')
10          while True:
11              print("""
12              1 浏览商品
13              2 添加购物车
14              3 支付
15              4 退出
16              """)
17              choice=input('请输入你的操作: ') #choice='1'
18              if choice == '1':
19                  print('开始浏览商品....')
20              elif choice == '2':
21                  print('正在添加购物车....')
22              elif choice == '3':
23                  print('正在支付....')
24              elif choice == '4':
25                  break
26          break
27      else:
28          print('user or password err')
29          count+=1
30  else:
31      print('输错的次数过多')
32 
33  print('end...')
 简洁版:定义tag变量控制所有循环

 1 name_of_db='egon'
 2 pwd_of_db='123'
 3 tag=True
 4 print('start....')
 5 count=0
 6 while tag:
 7     if count == 3:
 8         print('尝试次数过多')
 9         break
10     name=input('please your name>>: ')
11     pwd=input('please your password>>: ')
12     if name == name_of_db and pwd == pwd_of_db:
13         print('login successful')
14         while tag:
15             print("""
16             1 浏览商品
17             2 添加购物车
18             3 支付
19             4 退出
20             """)
21             choice=input('请输入你的操作: ') #choice='1'
22             if choice == '1':
23                 print('开始浏览商品....')
24             elif choice == '2':
25                 print('正在添加购物车....')
26             elif choice == '3':
27                 print('正在支付....')
28             elif choice == '4':
29                 tag=False
30 
31     else:
32         print('user or password err')
33         count+=1
34 
35 print('end...')

for循环主要用于循环取值

普通方法:

1 student=['egon','虎老师','lxxdsb','alexdsb','wupeiqisb']
3 i=0
4 while i < len(student):  #len为列表的方法,相当于Java中数组的长度方法
5      print(student[i])
6      i+=1 

用for循环取值:

 1  student=['egon','虎老师','lxxdsb','alexdsb','wupeiqisb']
 2 
 3 #打印每一个列表元素
 4  for item in student:
 5      print(item)
 6 
 7  #打印字符串的每个字符
 8  for item in 'hello':
 9      print(item)
10 
11  #只能取出key,然后通过key来去对应的值   
12  dic={ 'x':444,'y':333,'z':555}
13  for k in dic:
14      print(k,dic[k])
15 
16  #range:范围,1-10,取头不取尾,步数为3;
17  for i in range(1,10,3):
18      print(i)
19  >>1,4,7
20 
21  #省略起点0,默认步长为1,结果是0-9,十个数
22  for i in range(10):
23      print(i)

取出编号并对应老师名:

1 student=['egon','虎老师','lxxdsb','alexdsb','wupeiqisb']
2 for i in range(len(student)):#len(student)=5,即range(0,5),i=0,1,2,3,4
3     print(i,student[i])



运行结果:

  0 egon

  1 虎老师

  2 lxxdsb

  3 alexdsb

  4 wupeiqisb

 

转载于:https://www.cnblogs.com/xuechengeng/p/9647574.html

更多相关:

  • #coding:utf-8'''Created on 2017年10月25日@author: li.liu'''import pymysqldb=pymysql.connect('localhost','root','root','test',charset='utf8')m=db.cursor()'''try:#a=raw_inpu...

  • python数据类型:int、string、float、boolean 可变变量:list 不可变变量:string、元组tuple 1.list list就是列表、array、数组 列表根据下标(0123)取值,下标也叫索引、角标、编号 new_stus =['刘德华','刘嘉玲','孙俪','范冰冰'] 最前面一个元素下标是0,最...

  • from pathlib import Path srcPath = Path(‘../src/‘) [x for x in srcPath.iterdir() if srcPath.is_dir()] 列出指定目录及子目录下的所有文件 from pathlib import Path srcPath = Path(‘../tenso...

  • 我在使用OpenResty编写lua代码时,需要使用到lua的正则表达式,其中pattern是这样的, --热水器设置时间 local s = '12:33' local pattern = "(20|21|22|23|[01][0-9]):([0-5][0-9])" local matched = string.match(s, "...

  • 在分析ats的访问日志时,我经常会遇到将一些特殊字段对齐显示的需求,网上调研了一下,发现使用column -t就可以轻松搞定,比如 找到ATS的access.log中的200响应时间过长的日志 cat access.log | grep ' 200 ' | awk -F '"' '{print $3}' > taoyx.log co...

  • #include #include #include #include #include #include #include

  • 题目:表示数值的字符串 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100"、"5e2"、"-123"、"3.1416"、"0123"及"-1E-16"都表示数值,但"12e"、"1a3.14"、"1.2.3"、"+-5"及"12e+5.4"都不是。 解题: 数值错误的形式有多种多样,但是正确的...

  • 加法伺候  //超过20位数值相加---------------------------------------- function bigNumAdd(a, b) {if (!(typeof a === "string" && typeof b === "string")) return console.log("传入参数必...

  • 业务场景: 从中文字句中匹配出指定的中文子字符串 .这样的情况我在工作中遇到非常多, 特梳理总结如下. 难点: 处理GBK和utf8之类的字符编码, 同时正则匹配Pattern中包含汉字,要汉字正常发挥作用,必须非常谨慎.推荐最好统一为utf8编码,如果不是这种最优情况,也有酌情处理. 往往一个具有普适性的正则表达式会简化程...

  • 简单record 一下 #include // 'struct sockaddr_in' #include #include // 'struct ifreq' and 'struct if_nameindex' #include #inc...

  • 引言 在这个-SLAM建图和导航仿真实例-项目中,主要分为三个部分,分别是 (一)模型构建(二)根据已知地图进行定位和导航(三)使用RTAB-MAP进行建图和导航 该项目的slam_bot已经上传我的Github。 这是第三部分,完成效果如下 图1 建图和导航 三、使用RTAB-Map进行建图和导航 1. rtab...

  • 引言 在这个-SLAM建图和导航仿真实例-项目中,主要分为三个部分,分别是 (一)模型构建(二)根据已知地图进行定位和导航(三)使用RTAB-MAP进行建图和导航 该项目的slam_bot已经上传我的Github。 由于之前的虚拟机性能限制,我在这个项目中使用了新的ubantu 16.04环境,虚拟机配置 内存 8GCPU...

  • [{name:1},{name:2}].forEach((v,i,ar) => {console.log(v,i,ar)});//基础遍历[{name:1},{name:2}].map((v) => v.name);//[1,2]返回对象数组中指定字段值的一位数组(不改变原始数组)[{name:1},{name:2},{name:3}...

  • 体验内容 使用gmapping方法利用turtlebot底盘移动信息和激光雷达数据进行建图。 1. 安装一些依赖包 sudo apt-get install ros-melodic-move-base* sudo apt-get install ros-melodic-map-server* sudo apt-get insta...

  • 前言 我们知道Java/Python这种语言能够很好得 支持反射。反射机制 就是一种用户输入的字符串到对应实现方法的映射,比如http接口中 用户传入了url,我们需要调用该url对应的方法/函数对象 从而做出对应的操作。 而C++ 并没有友好得支持这样的操作,而最近工作中需要通过C++实现http接口,这个过程想要代码实现得优雅...