day4-day5 选择、循环总结

选择语句:

if

1 a=1
2 b=2
3 if  a<b:
4     print("Yes")
5     print("Yes")
6     print("Yes")
7     print("Yes")
8 else:
9     print("No")

一.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 案例

#!/usr/bin/env python
#_*_coding:utf-8_*_

‘‘‘
提示输入用户名和密码

验证用户名和密码
     如果错误,则输出用户名或密码错误
     如果成功,则输出 欢迎,XXX!
‘‘‘

import getpass

name=input(‘用户名: ‘)
passwd=getpass.getpass(‘密码: ‘)

if name == ‘alex‘ and passwd == ‘123‘:
    print(‘土豪里边请‘)
else:
    print(‘土鳖请走开‘)

#!/usr/bin/env python
#_*_coding:utf-8_*_

‘‘‘
 根据用户输入内容打印其权限

 alex --> 超级管理员
 eric --> 普通管理员
 tony,rain --> 业务主管
 其他 --> 普通用户
‘‘‘
name = input(‘请输入用户名:‘)

if name == "alex":
    print("超级管理员")
elif name == "eric":
    print("普通管理员")
elif name == "tony" or name == "rain":
    print("业务主管")
else:
    print("普通用户")

1.4 三元表达式

1.4 三元表达式

语法:

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
>>> smaller
1

二.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=0
while (count < 9):
    print(‘the loop is %s‘ %count)
    count+=1 

2.2.3:无限循环

count=0
while True:
    print(‘the loop is %s‘ %count)
    count+=1

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

2.2.4:while与break,continue,else连用

count=0
while (count < 9):
    count+=1
    if count == 3:
        print(‘跳出本层循环,即彻底终结这一个/层while循环‘)
        break
    print(‘the loop is %s‘ %count)

count=0
while (count < 9):
    count+=1
    if count == 3:
        print(‘跳出本次循环,即这一次循环continue之后的代码不再执行,进入下一次循环‘)
        continue
    print(‘the loop is %s‘ %count)

count=0
while (count < 9):
    count+=1
    if count == 3:
        print(‘跳出本次循环,即这一次循环continue之后的代码不再执行,进入下一次循环‘)
        continue
    print(‘the loop is %s‘ %count)
else:
    print(‘循环不被break打断,即正常结束,就会执行else后代码块‘)

count=0
while (count < 9):
    count+=1
    if count == 3:
        print(‘跳出本次循环,即这一次循环continue之后的代码不再执行,进入下一次循环‘)
        break
    print(‘the loop is %s‘ %count)
else:
    print(‘循环被break打断,即非正常结束,就不会执行else后代码块‘)

2.2.5:while语句小结

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

2.3 案例

while True:
        handle, indata = wait_for_client_connect()
        outdata = process_request(indata)
        ack_result_to_client(handle, outdata)

import getpass

account_dict={‘alex‘:‘123‘,‘eric‘:‘456‘,‘rain‘:‘789‘}
count = 0
while count < 3:
    name=input(‘用户名: ‘).strip()
    passwd=getpass.getpass(‘密码: ‘)
    if name in account_dict:
        real_pass=account_dict.get(name)
        if passwd == real_pass:
            print(‘登陆成功‘)
            break
        else:
            print(‘密码输入错误‘)
            count+=1
            continue
    else:
        print(‘用户不存在‘)
        count+=1
        continue
else:
    print(‘尝试次数达到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())
hello
everyone
sb

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)
0
1
2
3
4
5
6
7
8
9

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

3.2.5:for与break,continue,else

同while

3.2.6:for语句小结

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

3.3 案例

albums = (‘Poe‘, ‘Gaudi‘, ‘Freud‘, ‘Poe2‘)
years = (1976, 1987, 1990, 2003)

#sorted:排序
for album in sorted(albums):
    print(album)

#reversed:翻转
for album in reversed(albums):
    print(album)

#enumerate:返回项和
for i in enumerate(albums):
    print(i)
#zip:组合
for i in zip(albums,years):
    print(i)

四.练习

一、元素分类

有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
即: {‘k1‘: 大于66的所有值, ‘k2‘: 小于66的所有值}

二、查找
查找列表中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。
    li = ["alec", " aric", "Alex", "Tony", "rain"]
    tu = ("alec", " aric", "Alex", "Tony", "rain")
    dic = {‘k1‘: "alex", ‘k2‘: ‘ aric‘,  "k3": "Alex", "k4": "Tony"}

三、输出商品列表,用户输入序号,显示用户选中的商品
    商品 li = ["手机", "电脑", ‘鼠标垫‘, ‘游艇‘]

四、购物车
功能要求:

要求用户输入总资产,例如:2000
显示商品列表,让用户根据序号选择商品,加入购物车
购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
附加:可充值、某商品移除购物车
goods = [
    {"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998},
]
 五、用户交互,显示省市县三级联动的选择

dic = {
    "河北": {
        "石家庄": ["鹿泉", "藁城", "元氏"],
        "邯郸": ["永年", "涉县", "磁县"],
    }
    "河南": {
        ...
    }
    "山西": {
        ...
    }

}

时间: 2024-11-04 14:12:12

day4-day5 选择、循环总结的相关文章

python顺序选择循环使用

格式化输出 顺序选择循环结构 简单使用 查看某个模块.内置函数或者某个对象使用帮助help([module|object.ways]) 格式化输出 将代码按照指定格式输出:%对字符串进行格式化,\用来做转义 格式符:%c:显示字符的ASCII码%d,%i:显示十进制整数%e:科学计数法数值显示%f:浮点数%s:字符串%%:显示%修饰符:#[.#]:第一个#数字控制显示的宽度,第二个表示小数点的精度-:左对齐+:显示数值的符号 顺序选择循环结构:格式强要求! 分支结构,单分支.双分支,多分支: i

PowerShell随笔2_分支 选择 循环

PowerShell特殊变量: PowerShell的特殊变量由系统自动创建.用户自定义的变量名称应该不和特殊变量相同. $^ :前一命令行的第一个标记 $$ :前一命令行的最后一个标记 $_ :表示表示当前循环的迭代变量. $? :前一命令执行状态,成功(Ture) 或者 失败(False) $Args :为脚本或者函数指定的参数 $Error :错误发生时,错误对象存储于变量 $Error 中 $Foreach :引用foreach循环中的枚举器 $Home :用户的主目录 $Host :引

数据库 SQL server 连接查询 变量 选择 循环 延时语句

use lianxigo--1.供应商表 gong-- (gcode 供应商编号-- gname 供应商名称-- gtel 供应商电话)create table gong(gcode int primary key,gname varchar(20),gtel varchar(20),)goinsert into gong values(101,'淄博商贸','0533-123456')insert into gong values(102,'济南商贸','0531-234567')insert

react 使用antd的TreeSelect树选择组件实现多个树选择循环

需求说明,一个帐号角色可以设置管理多个项目的菜单权限 且菜单接口每次只能查询特定项目的菜单数据[无法查全部] 开发思路: 1,获取项目接口数组,得到项目数据 2,循环项目数据,以此为参数递归查询菜单数据[递归查询是为保证循环时数据异步请求顺序 不稳定] 3,将菜单数组组装成一个二维数组,以待循环树选择组件作展示 数据使用 4,循环树选择组件,实现树选择菜单功能 5,读取某条用户信息的菜单权限,将返回字符串菜单编码处理成与菜单数据相同的二维数组 6,奖该用户信息的菜单权限数组加载到循环树选择组件作

2 表达式 选择 循环 函数

Scala中,几乎所有的语法结构都是有值的(包括表达式和语句块...) 1 IF/ELSE结构 val s = if(x > 0) 1 else -1 等价于 if(x > 0) s = 1 else s = -1 注:既然表达式是有值的,那么必然也是有类型的.如上述表达式的类型是:Int 如果出现if分支和else分支类型不同,比如:if(x > 0) ”positive” else -1,那么整个表达式的类型是:String和Int的公共基类Any 如果一个表达式没有任何有效值,可以

循环和选择

3-1 IF判断 作用:流程控制,属于流程控制语句 流程控制 if判断 switch选择 循环 判断的条件是bool类型 else if 可以有任意个,并且可以省略else 3-2  switch选择 语法如下: switch(变量或表达式) { case 值1: 代码1; break; case 值2: 代码2; break; default: 代码N; break; } ps:每个分支后必须跟break,值必须集体,不能是变量和表达式,case可以任意个,default只有1个或0个. 3-

java入门学习(3)&mdash;循环,选择,基础算法,API概念

1.顺序结构:也就是顺着程序的前后关系,依次执行.2.选择分支:利用if..else , / switch(){case [ 这个必须是常量]:}; / if..else if-.. -.else..等语句让程序在不同的分支中切换执行.3.循环结构:重复执行完成功能,可以用while(){}(先判断再执行):do{}while():(先执行后判断): for(初始值:结束条件:循环控制变量): 注:其中循环可以嵌套,嵌套的时候先判断外层循环是否满足,然后再进入内层循环,执行完内层循环管,一直到条

python基础学习日志day5

学习内容 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configparser hashlib subprocess logging模块 re正则表达式 一:模块介绍 模块分为三种: 自定义模块 内置标准模块(又称标准库) 开源模块 自定义模块使用 # -*- coding:utf-8 -*- __author__ = 'shisanjun' """ d

Objective-C学习笔记(十)——循环语句for和do-while的使用

在OC中.除了while这样的循环方式外,还有另外for循环和do-while循环.它们在不同的业务逻辑下会有不同的作用.能够和C语言和Java对照着学习. (一)代码一: int main(int argc, const char * argv[]) { @autoreleasepool { for (int i = 0; i < 5; i++) { NSLog(@"你好,i = %d",i); } } return 0; } 输出结果: . 结果分析:for循环的循环变量放到

9.PL_SQL——PL_SQL中的循环控制语句

循环是指在程序中重复执行一条或多条语句.PL/SQL中的循环主要有三种: 1.Basic Loop 2. FORLoop 3.WHILE Loop 下面来逐一介绍这三种循环的用法. 一.BasicLoops 基本循环的格式如下: LOOP                               statement1:                               ...                               EXIT [WHENcondition];