当前位置: 首页 > 编程日记 > 正文

流程控制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

相关文章:

抄写例题作业1

截图 1.例9.1 &#xff08;1&#xff09;代码实现 1 #include<stdio.h>2 int main()3 {4 struct stu5 {6 long int num;7 char name[20];8 char sex[3];9 char addr[20]; 10 }a{1010,"董诗原","男",&qu…

android button imagebutton 区别,Android 开发入门篇

Button 与 ImageButton本节学习Android基本控件按钮控件&#xff0c;Button和ImageButton用法基本类似&#xff0c;所以本节重点讲解Button控件。在布局中添加Button控件&#xff1a;android:id"id/btn"android:text"普通按钮"android:layout_width"w…

iOS autolayout 约束冲突添加symbol breakpoint

UIViewAlertForUnsatisfiableConstraints

Win7安装ant

下载ant&#xff0c;当前版本是1.9.4。下载地址点击打开链接。 解压到你喜欢的路径下面&#xff0c;我喜欢D:\Program Files\apache-ant-1.9.4 配置环境变量ANT_HOME。右击计算机→选择属性→高级系统设置→“高级”标签→环境变量。 新建系统变量。变量名必须是“ANT_HOME…

af eeee

e 转载于:https://www.cnblogs.com/xiaobaiv/p/9661043.html

ios bug 分析

ios中线上或者内部测试bug统计收集有两种方法&#xff1a; 1)使用第三方bug收集 1.bugHD 来源http://bughd.com/doc/ios-customize 2.bugtags 来源http://help.bugtags.com/hc/kb/article/124400/ http://help.bugtags.com/hc/kb/article/68482/ 3.KSCrash https://github.com/…

我理解的接口测试(一)

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及系统间的相互逻辑依赖关系等。 接口 应用&#xff08;模块&#xff09;提供对…

android jni语法,Android NDK中的JNIEXPORT和JNICALL

基本上是一个Windows问题,如果你看看oracle Java jdk附带的文件jni_md_win32.h这是宏定义&#xff1a;/** (#)jni_md.h 1.14 03/12/19** Copyright 2004 Sun Microsystems, Inc. All rights reserved.* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.*/#ifnd…

Win7编译volley成jar包

首先安装git和ant&#xff0c;当然jdk也是必须的。 git clone搞到volley的源码。 git clone https://android.googlesource.com/platform/frameworks/volley 此时volley的目录里面应该是这样的&#xff0c;没有AndroidManifest.xml文件。 cd进volley目录&#xff0c;敲下一…

c语言的求素数算法,C语言求素数的算法

最后一次是出了素数的问题C语言解决题目(面试)&#xff0c;当时用了最粗暴的算法。回来细致參考资料&#xff0c;事实上答案有非常多种&#xff1a;1&#xff0c;小学生版本号&#xff1a;推断 x 是否为质数&#xff0c;就从 2 一直算到 x-1。static rt_uint32_t array1[ARRAY_…

Python全栈Day 15部分知识点

全局变量与局部变量 约定俗成的规则&#xff1a;全局变量名大写&#xff0c;局部变量名小写。 全局变量没有缩进&#xff0c;顶格写。 如果函数的内容无global关键字&#xff0c;优先读取局部变量&#xff0c;能读取全局变量&#xff0c;无法重新赋值&#xff0c;但是对于可变类…

SQL执行并返回执行前/后结果

SQLServer&#xff1a; 1、插入数据&#xff0c;并返回插入的数据&#xff1a;INSERT INTO TestTB(Province,City) output inserted.Province, inserted.City VALUES(广东,深圳)2、同理&#xff0c;删除数据也是一样的&#xff0c;只不过是使用deleted表罢了。delete from Test…

WebStorm 运行Rect Native 项目

今天教大家如何直接使用WebStorm这个IDE直接完成编码运行项目工作.这样就可以不用打开Xcode了. 1.首先点击WebStorm右上方的下拉箭头弹出的Edit Configurations.... 2.然后会进入一个配置页面.点击左上方的.在弹出的列表中选中npm.如图. 3.在右边的配置框中,先选择Command为hel…

Win7下用VS2010编译QGIS2.9.0

折腾了两天了&#xff0c;终于吧QGIS2.9.0在VS2010下面编译过了。 参考了许多的博客&#xff0c;在网络环境极为和&#xff08;e&#xff09;谐&#xff08;lie&#xff09;的情况下用Google查了好多资料。 其实原创的东西真的不多&#xff0c;但是毕竟是自己亲身实践得到的成…

软件工程第二次课后作业——Gaoooo

代码量&#xff1a;9行 码云仓库&#xff1a;https://gitee.com/Gaooo/2016035107059.git 实现时间&#xff1a;emmmmm&#xff08;9行代码&#xff0c;自己估计&#xff01;&#xff01;&#xff09; 程序对表达式类型的支持程度&#xff1a;全部支持&#xff01; 能支持两个操…

android检测本地是否安装,在本地测试模块的安装

Play 核心库可让您在本地测试应用是否能够执行以下操作&#xff0c;而无需连接到 Play 商店&#xff1a;请求并监控模块的安装。处理安装错误。本页介绍了如何将应用的拆分 APK 部署到测试设备&#xff0c;以便 Play 核心自动使用这些 APK 模拟从 Play 商店请求、下载和安装模块…

IsPostBack的使用

protected void Page_Load(object sender, EventArgs e){//当前用户通过Index.aspx页面中“添加用户”链接跳转到该页面时&#xff0c;这是一次get请求&#xff0c;所以不会提交表单&#xff0c;拿不到隐藏域的值。当前页面显示完成&#xff0c;用户在表单中输入数据以后单击提…

WebStorm下ReactNative代码提示设置

ReactNative 代码智能提醒 (Webstrom live template) https://github.com/virtoolswebplayer/ReactNative-LiveTemplate ReactNative的代码模板,包括: 1.组件名称 2.Api 名称 3.所有StyleSheets属性 4.React组件 安装 方法一 file -> import settings -> ReactNative.ja…

WinXp安装Oracle 11g Express Edition

由于在虚拟机上学习&#xff08;怕把真机器搞坏了&#xff09;&#xff0c;这次是在Windows XP上安装Oracle 11g Express。 本文安装的是Oracle 11g Express&#xff0c;是Oracle数据库的快速版&#xff08;学习版&#xff09;&#xff0c;安装包大小只有几百MB。 到Oracle的…

html语言书写注意事项,CSS命名规范参考及书写注意事项

CSS书写顺序*{/*显示属性*/displaypositionfloatclearcursor…/*盒模型*/marginpaddingwidthheight/*排版*/vertical-alignwhite-spacetext-decorationtext-align…/*文字*/colorfontcontent/*边框背景 为什么要把 boder和background放在最后的原因是修改的频率会较之前的频繁&…

关于移动端rem适配

var num 1 / window.devicePixelRatio; var fontSize document.documentElement.clientWidth / 10; document.getElementsByTagName(html)[0].style.fontSize fontSize px; 适配移动端rem单位&#xff0c;实际使用的时候用量取到的像素值/75即为计算后的rem值&#xff0c;标…

JavaWeb基础—JSP

一、什么是JSP JSP 全称是 Java Server Pages&#xff0c;是一种开发动态web资源的技术 在原HTML上添加JAVA脚本&#xff08;灵魂工程师&#xff0c;为页面添加灵魂&#xff09;&#xff0c;可以说 jsp html java代码 jsp标签 二、JSP的原理 JSP基本原理&#xff1a; JSP…

react-native 常用命令

创建项目 react-native init AwesomeProject //AwesomeProject是项目名启动 Node.js web server react-native start启动android react-native run-android启动ios react-native run-ios运行特定模拟器&#xff1a;react-native run-ios --simulator "iPhone 5"

使用WinPcap和libpcap类库读写pcap文件(001)开发环境配置

最近的项目要求写一个读写pcap文件的小程序&#xff0c;用来修改pcap中的部分信息&#xff0c;实现pcap的定制。 所以必须学会使用wireshark并能有利用WinPcap库和libpcap库进行开发。 虽然本文记录的都是windows下使用WinPcap进行开发&#xff0c;但是由于希望程序能够跨平台…

MySql忘记密码了咋办

对内 忘记密码终端修改操作&#xff1a; #停止mysql服务 sudo /opt/lampp/lampp stopmysql #参数启动mysqld sudo /opt/lampp/sbin/mysqld --skip-grant-tables #新建开一个终端&#xff08;复制会话&#xff09;进入 sudo /opt/lampp/bin/mysql -uroot #使用mysql权限&…

html资源文件记载进度条,用进度条显示文件读取进度《 HTML5:文件 API 》

在这个文档里&#xff0c;我添加了一个 标签 .. 上面定义了一个 ID 是 eventstatus … 我们可以把进度条放在这个容器里面 … 先找到用来显示进度条的容器 …// 找到显示事件状态的容器var eventStatus document.getElementById("eventstatus");然后再去创建进度条需…

JS中根据某个值进行大小排序

//从大到小排序 function compareBigToSmall(property){return function(a,b){var value1 a[property];var value2 b[property];return value2 - value1;} }; //从小到大排序 function compareSmallToBig(property){return function(a,b){var value1 a[property];var value…

react native 常用学习或查资料网址

react-native facebook官网&#xff1a;http://facebook.github.io/react-native/ 中文网&#xff1a;http://reactnative.cn/ react 官网地址&#xff1a;http://facebook.github.io/react/ Github地址&#xff1a;https://github.com/facebook/react 阮一峰教程&#xff1a…

使用WinPcap和libpcap类库读写pcap文件(002)PCAP文件格式

本文基本翻译自https://wiki.wireshark.org/Development/LibpcapFileFormat&#xff0c;主要分析pcap文件的格式。 其中一些字段可能和现在的WinPcap类库里的字段不同&#xff0c;请结合当前WinPcap库分析。 libpcap文件格式 libpcap文件格式是TcpDump/WinDump&#xff0c;Wir…

图论-最短路径--3、SPFA算法O(kE)

SPFA算法O(kE) 主要思想是&#xff1a; 初始时将起点加入队列。每次从队列中取出一个元素&#xff0c;并对所有与它相邻的点进行修改&#xff0c;若某个相邻的点修改成功&#xff0c;则将其入队。直到队列为空时算法结束。 这个算法&#xff0c;简单的说就是队列优化的bellman-…