博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
13-python基础2-条件和循环
阅读量:7227 次
发布时间:2019-06-29

本文共 4294 字,大约阅读时间需要 14 分钟。

1.if语句

  1.1 功能

  计算机又被称作电脑,意指计算机可以像人脑一样,根据周围环境条件(即expession)的变化做出不同的反应(即执行代码),if语句就是来控制计算机实现这一功能。

  1.2 语法

  1.2.1:单分支,单重条件判断

  if expression:

      expr_true_suite

  注释:expession为真执行代码expr_true_suite

  1.2.2:单分支,多重条件判断

  if not  active or over_time >= 10:

      print('Warning:service is dead')

      warn_tag+=1

  1.2.3:if+else

  if expression:

      expr_true_suite   

  else:

      expr_false_suite

  1.2.4:多分支if+elif+else

  if expession1:

      expr1_true_suite

  elif expression2:

      expr2_true_suite

  elif expession3:

      expr3_true_suite

  else:

      none_of_the_above_suite

  1.2.5:if语句小结

  1. if 后表达式返回值为True则执行其子代码块,然后此if语句到此终结,否则进入下一分支判断,直到满足其中一个分支,执行后终结if
  2. expression可以引入运算符:not,and,or,is,is not
  3. 多重expression为加强可读性最好用括号包含
  4. if与else缩进级别一致表示是一对
  5. elif与else都是可选的
  6. 一个if判断最多只有一个else但是可以有多个elif
  7. else代表if判断的终结
  8. expession可以是返回值为布尔值的表达式(例x>1,x is not None)的形式,也可是单个标准对象(例 x=1;if x:print('ok'))
  9. 所有标准对象均可用于布尔测试,同类型的对象之间可以比较大小。每个对象天生具有布 尔 True 或 False 值。空对象、值为零的任何数字或者 Null 对象 None 的布尔值都是 False。

  下列对象的布尔值是 False

  1.3 三元表达式

  语法:

  expr_true_suite if expession else expr_false_suite

  案例一:

>>> active=1>>> print('service is active') if active else print('service is inactive')service is active

  案例二:

>>> x=1>>> y=2>>> smaller=x if x < y else y>>> smaller1

2.while语句

  2.1 功能

  while循环的本质就是让计算机在满足某一条件的前提下去重复做同一件事情(即while循环为条件循环,包含:1.条件计数循环,2条件无限循环)

  这一条件指:条件表达式

  同一件事指:while循环体包含的代码块

  重复的事情例如:从1加到10000,求1-10000内所有奇数,服务等待连接

  2.2 语法

  2.2.1:基本语法

  while expression:

      suite_to_repeat

  注解:重复执行suite_to_repeat,直到expression不再为真

  2.2.2:计数循环

count=0while (count < 9):    print('the loop is %s' %count)    count+=1 

  2.2.3:无限循环

count=0while True:    print('the loop is %s' %count)    count+=1
tag=Truecount=0while tag:    if count == 9:        tag=False    print('the loop is %s' %count)    count+=1 

  2.2.4:while语句小结

  • 条件为真就重复执行代码,直到条件不再为真,而if是条件为真,只执行一次代码就结束了
  • while有计数循环和无限循环两种,无限循环可以用于某一服务的主程序一直处于等待被连接的状态
  • break代表跳出本层循环,continue代表跳出本次循环
  • while循环在没有被break打断的情况下结束,会执行else后代码

3.for语句

  3.1 功能

  for 循环提供了python中最强大的循环结构(for循环是一种迭代循环机制,而while循环是条件循环,迭代即重复相同的逻辑操作,每次操作都是基于上一次的结果,而进行的)

  3.2 语法

  3.2.1:基本语法

  for iter_var in iterable:

      suite_to_repeat

  注解:每次循环, iter_var 迭代变量被设置为可迭代对象(序列, 迭代器, 或者是其他支持迭代的对 象)的当前元素, 提供给 suite_to_repeat 语句块使用.

  3.2.2:遍历序列类型

name_list=['alex','eric','rain','xxx']#通过序列项迭代for i in name_list:    print(i)#通过序列索引迭代for i in range(len(name_list)):    print('index is %s,name is %s' %(i,name_list[i]))#基于enumerate的项和索引for i,name in enumerate(name_list,2):    print('index is %s,name is %s' %(i,name)) 

  3.2.3:遍历可迭代对象或迭代器

  迭代对象:就是一个具有next()方法的对象,obj.next()每执行一次,返回一行内容所有内容迭代完后,

  迭代器引发一 个 StopIteration 异常告诉程序循环结束. for 语句在内部调用 next() 并捕获异常.

  for循环遍历迭代器或可迭代对象与遍历序列的方法并无二致,只是在内部做了调用迭代器next(),并捕获异常,终止循环的操作

  很多时候你根本无法区分for循环的是序列对象还是迭代器 

>>> f=open('a.txt','r')for i in f:    print(i.strip())helloeveryonesb

  3.2.4:for基于range()实现计数循环

  range()语法:

  range(start,end,step=1):顾头不顾尾

    •   range(10):默认step=1,start=0,生成可迭代对象,包含[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    •   range(1,10):指定start=1,end=10,默认step=1,生成可迭代对象,包含[1, 2, 3, 4, 5, 6, 7, 8, 9]
    •   range(1,10,2):指定start=1,end=10,step=2,生成可迭代对象,包含[1, 3, 5, 7, 9]
>>> list(range(10))[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> for i in range(10):    print(i)0123456789

 

  注:for基于range()实现计数循环,range()生成可迭代对象,说明for循环本质还是一种迭代循环

  3.2.5:for语句小结

    •   for循环为迭代循环
    •   可遍历序列成员(字符串,列表,元组)
    •   可遍历任何可迭代对象(字典,文件等)
    •   可以用在列表解析和生成器表达式中
    •   break,continue,else在for中用法与while中一致

  3.2 案例

import getpassname=input("请输入您的姓名:")passwd=getpass.getpass("请输入您的密码:")if name=="newtaul" and passwd=="123456":    print("恭喜你登录成功")else:    print("很遗憾登录失败")print(name,passwd,type(name),type(passwd))

 

count=0while True:    name=input(">>name:  ")    passwd=input(">>passwd:  ")    if name=="egon" and passwd=="123":        print("login successful...")        break    count+=1    if count==3:        print("You have tried too many times!")        break

 

tag = Truewhile tag:    name = input("Your name: ")    password = input("Please input your passwd: ")    if name == "egon" and password == "123":        while tag:            res = input(">>: ")            if res == "q":                tag = False                continue            print("cmd:%s" % res)for i in range(1, 10):    for j in range(1, i+1):        print("%d*%d=%d" % (j, i, i * j), end=" ")    print()print("*****")

 

转载于:https://www.cnblogs.com/NewTaul/p/6958532.html

你可能感兴趣的文章
数据结构之串
查看>>
我的友情链接
查看>>
lvs+keepalived+nginx+tomcat高可用高性能集群部署
查看>>
实验:搭建主DNS服务器
查看>>
org.gjt.mm.mysql.Driver与com.mysql.jdbc.Driver区别
查看>>
部署exchange2010三合一:之五:功能测试
查看>>
nginx编译安装参数
查看>>
代码托管
查看>>
第一次给ThinkPHP5核心框架提pull request的完整过程
查看>>
U-Mail邮件系统何以誉为信息整合中转枢纽
查看>>
强大的vim配置文件,让编程更随意
查看>>
崛起于Springboot2.X之配置文件详解(10)
查看>>
定时执行程序-Quartz简单实例
查看>>
【CF 应用开发大赛】MyfCMS系统
查看>>
windows下kangle虚拟主机-架设java空间的教程及心得
查看>>
Discuz! X2.5:文件目录结构
查看>>
我的友情链接
查看>>
TCP/IP协议及首部初了解
查看>>
防火墙iptables
查看>>
CUDA搭建
查看>>