流程控制之if...elif...else和流程控制之while循环

一、流程控制之if...elif...else

1、如果:女人年龄大于28岁,那么:叫大姐姐,否则:叫小姐姐

old_grid=28
if old_grid > 28:
    print(‘大姐姐‘)
else
    print(‘小姐姐‘)

2、如果:女人的年龄>=18并且<22岁并且身高>170并且体重<100并且是漂亮的,那么:表白,否则:gd,如果:表白成功,那么:在一起,如果不成功,那么:mmp

old_grid=21
height=170
weight=99
is_pretty=True
success=False
if old_grid >= 18 and old_grid < 22 and height == 170 and weight < 100 and is_pretty==True:   #注意,这里值比较用"=="
    if success:
        print(‘在一起‘)
    else:
        print(‘mmp‘)
else:
    print(‘gd‘)

3、如果:成绩>=90,那么:优秀,

如果:成绩>=80且<90,那么:良好,

如果:成绩>=70且<80,那么:普通,

其他情况:很差

grade=input(‘grad=‘)
grade=int(grade)
if grade >= 90:
    print(‘优秀‘)
elif grade >= 80:
    print(‘良好‘)
elif grade >= 70:
    print(‘普通‘)
else:
    print(‘很差‘)

4、用户登录验证,需求:

输入用户名,密码,登录成功。

user=input(‘user:‘)
print(type(user))
password=input(‘password:‘)
print(type(password))
if user==‘lqx‘ and password==‘123456‘:
    print(‘login successful‘)
else:
    print(‘user or password orror‘)

****5、根据用户输入内容打印其权限,需求:****

>用户1,lqx 超级管理员

用户2,ft 管理员

用户3,egon、join 普通用户

user=input(‘user:‘)
dic={‘lqx‘:‘超级管理员‘,‘ft‘:‘管理员‘,‘egon‘:‘普通用户‘,‘join‘:‘普通用户‘}  #这里用dic定义每个用户所定义的职位
if user==‘lqx‘:
    print(dic[user])   #dic[user],[]里面如果不用‘‘是变量的意思,如果‘‘引起来是dic中的key的意思
elif user==‘ft‘:
    print(dic[user])
elif user==‘egon‘ or ‘join‘:
    print(dic[user])
else:
    print(‘不相干人员‘)

二、if中使用逻辑符,或者使用if...in [‘‘,‘‘]:elif...:else...

需求:周一到周五,工作。周末,浪

#方法一:
day_number=input(‘day_number:‘)

if   day_number==   ‘Mon‘:
    print(‘job‘)
elif day_number==   ‘Tue‘:
    print(‘job‘)
elif day_number ==  ‘Wed‘:
    print(‘job‘)
elif day_number ==  ‘Thu‘:
    print(‘job‘)
elif day_number ==  ‘Fri‘:
    print(‘job‘)
elif day_number ==  ‘Sat‘:
    print(‘job‘)
elif day_number ==  ‘Sun‘:
    print(‘job‘)
else:
    print(‘‘‘please print under:
    Mon
    Tue
    Wed
    Thu
    Fri
    Sat
    Sun
    ‘‘‘)
#方法二 使用逻辑符or实现:
day_number=input(‘day_number:‘)

if   day_number==‘Mon‘ or day_number==‘Tue‘ or day_number ==  ‘Wed‘ or day_number ==‘Thu‘ or day_number == ‘Fri‘:
    print(‘job‘)
elif day_number ==  ‘Sat‘ or day_number ==  ‘Sun‘:
    print(‘浪‘)
else:
    print(‘‘‘please print under:
    Mon
    Tue
    Wed
    Thu
    Fri
    Sat
    Sun
    ‘‘‘)
#方法三:  使用if.in [‘‘,‘‘]:elif...:else...
day_number=input(‘day_number:‘)

if day_number in [‘Mon‘,‘Tue‘,‘Wed‘,‘Thu‘,‘Fri‘]:
    print(‘job‘)
elif day_number in [‘Sat‘,‘Sun‘]:
    print(‘浪‘)
else:
    print(‘‘‘please print under:
    Mon
    Tue
    Wed
    Thu
    Fri
    Sat
    Sun
    ‘‘‘)

三、流程控制之while循环

while语法:

while 条件

#循环体

#如果条件为真,那么循环体则执行,执行完毕后再次循环,重新判断条件。

#如果条件为假,那么循环不执行,循环终止。

1、打印0-10
count=0
while count <=10:
    print(count)
    count+=1
2、打印0-10之间的偶数
count=0
while count <= 10:
    if count%2 == 0:
        print(‘loop‘,count)
    count+=1
3、打印0-10之间的奇数
count=0
while count <= 10:
    if count%2 == 1:
        print(‘loop‘,count)
    count+=1
4、死循环
import time    #导入模块 time
num=0
while True:
    print(‘count‘,num)
    time.sleep(1)   #使用模块,并且休息一秒
    num+=1
5、循环嵌套与tag
tag=True
while tag:
    ...
    while tag:
        ...
        while tag:
            ...

#练习,要求如下:

1 循环验证用户输入的用户名与密码

2 认证通过后,运行用户重复执行命令

3 当用户输入命令为quit时,则退出整个程序

#方法一:
count=1
while True:
    user = input(‘user:‘)
    password = input(‘password:‘)
    dic = {‘user‘: ‘lqx‘, ‘password‘: ‘123‘}
    if user == dic[‘user‘] and password == dic[‘password‘]:
        print(‘login successful‘)
        count_com=0
        while true:
            command=input(‘command>>>:‘)
            print(command)
            if command in [‘exit‘,‘quit‘,‘q‘] :
                break    #这个break会退出最近的一层while循环
        break    #这个break会退出再外面一层的while循环
    else:
        count+=1
        continue   #这里continue不加也默认本次循环,执行下一次循环
#方法二:使用tag
name=‘egon‘
password=‘123‘
tag=True
while tag:
    inp_name=input(‘用户名: ‘)
    inp_pwd=input(‘密码: ‘)
    if inp_name == name and inp_pwd == password:
        while tag:
            cmd=input(‘>>: ‘)
            if not cmd:continue   #这里是用了个合并行,其实还是
            #if not cmd:   #cmd没有值
            #   continue
            if cmd == ‘quit‘:
                tag=False
                continue
            print(‘run <%s>‘ %cmd)
    else:
        print(‘用户名或密码错误‘)
6、break与continue
####break用于退出本层循环
while True:
    print(‘123‘)
    break
    print(‘456‘)  #这里是测试,break退出本层循环后,就不会执行下面同级别的命令

####continue用于退出本次循环,继续下一次循环
while True:
    print(‘123‘)
    continue     #这里是测试,continue退出本次循环后,也不会执行后面同级别的命令
    print(‘456‘)
7、while+else
#与其他语言else 一般只与if搭配不同,在python中还有while...else语句,while 后面的else作用是指:当while循环正常执行完成,中间没有被break终止的话,就会执行else后面的语句
count=0
while count <= 5:
    if count==0:
        print("------out of while loop ------")
    count +=1
    print(‘loop‘,count)

else:
    print(‘‘‘循环完成
-------------end--------------‘‘‘)

#如果执行过程中被break啦,就不会执行else的语句啦
count = 0
while count <= 5:
    count += 1
    print(count)
    if count == 3:break
    print("loop",count)
else:
    print("zhixingwanc")
while循环练习题
1. 使用while循环输出1 2 3 4 5 6 8 9 10
count=1
while count <=10:
    print(count)
    count+=1
else:
    print(‘输出完成‘)
2. 求1-100的所有数的和
count=0
sum=0
while count <100:
    sum=sum + (count+1)   #第一轮左sum=1,右sum=0,count=0,0+1;最后一轮左sum=5050,右边的sum=4050,count等于99
    count+=1
else:
    print(sum)
3. 输出 1-100 内的所有奇数
count=0
while count <=100:
    if count%2 ==1:    #count%2,除法取余,奇数/2余1
        print(count)
    count+=1
4. 输出 1-100 内的所有偶数
count=0
while count <=100:
    if count%2 ==0:    #count%2,除法取余,偶数/2余0
        print(count)
    count+=1
5. 求1-2+3-4+5 ... 99的所有数的和
count=0
sum=0
while count <=100:    #第一轮,count=0      #第二轮,count=1             第三轮,count=2     第四轮....
    if count%2 ==0:    #第一轮,count%2=0   #第二轮,count%2==1,不满足    第三轮,满足
        sum=sum+count  #第一轮,左sum=0+0                               第三轮,左sum=-1+2
        print(count)
    elif count%2 ==1:                      #第二轮,count%2==1,满足
        sum=sum-count                      #第二轮,左sum=0-1
        print(count)
    count+=1
else:
    print(sum)
6. 用户登陆(三次机会重试)
count=1
while count <= 3:
    user = input(‘user:‘)
    password = input(‘password:‘)
    count=1
while count <= 3:
    user = input(‘user:‘)
    password = input(‘password:‘)
    dic = {‘user‘: ‘lqx‘, ‘password‘: ‘123‘}
    if user == dic[‘user‘] and password == dic[‘password‘]:
        print(‘login successful‘)
        break
    else:
        print(‘user or password is error,可以重试3次,第 %s 次‘ %count)
    count += 1
    continue
    if user == ‘lqx‘ and password == ‘123‘:
        print(‘login successful‘)
        break
    else:
        print(‘user or password is error,可以重试3次,第 %s 次‘ %count)
    count += 1
    continue
7:猜年龄游戏

要求:

允许用户最多尝试3次,3次都没猜对的话,就直接退出,如果猜对了,打印恭喜信息并退出

count=1
while count <= 3:
    age=int(input(‘age:‘))
    if age > 43:
        print(‘猜大了,可以重试3次,第 %s 次‘ %count)
    elif age < 43:
        print(‘猜小了,可以重试3次,第 %s 次‘ %count)
    else:
        print(‘猜中了,successful‘)
        break
    count += 1
8:猜年龄游戏升级版

要求:

1、允许用户最多尝试3次

2、每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序

3、如何猜对了,就直接退出

ps:流程图:

count=1
while True:
    if count <=3 :
        age=int(input(‘age:‘))
        if age > 43:
            print(‘猜大了,可以重试3次,第 %s 次‘ %count)
        elif age < 43:
            print(‘猜小了,可以重试3次,第 %s 次‘ %count)
        else:
            print(‘猜中了,successful‘)
            break
        count += 1
    else:
        judge = input(‘是否继续(Y/N):‘)
        if judge in [‘Y‘,‘y‘]:
            count = 1
        else:
            break

四、作业

I、练习题
1、简述编译型与解释型语言的区别,且分别列出你知道的哪些语言属于编译型,哪些属于解释型
编译型与解释型语言的区别:
1、编译型:直接编译成二进制的语言统称为编译型语言,如c、c++
2、解释型:需要有指定的解释器去翻译的语言称为解释型语言,会生成中间文件,再编译,才能被计算机识别。如python,shell
2、执行 Python 脚本的两种方式是什么
3、Pyhton 单行注释和多行注释分别用什么?
单行注释,可以使用单引号,双引号,三引号,#
多行注释,直接使用三引号。
4、布尔值分别有什么?
True/False
5、声明变量注意事项有那些?
6、如何查看变量在内存中的地址?
print(id(变量名))
7、写代码

1、实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败!

2、实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次

3、实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次

8、写代码

a. 使用while循环实现输出2-3+4-5+6...+100 的和

b. 使用 while 循环实现输出 1,2,3,4,5, 7,8,9, 11,12 使用 while 循环实现输出 1-100 内的所有奇数

c. 使用 while 循环实现输出 1-100 内的所有偶数

9、现有如下两个变量,请简述 n1 和 n2 是什么关系?
  n1 = 123456
  n2 = n1
II、作业:
1、编写登陆接口,需求:

1、让用户输入用户名密码

2、认证成功后显示欢迎信息

3、输错三次后退出程序

ps:流程图:

count=1
tag=True
dic={
    ‘user‘:‘lqx‘,
    ‘password‘:‘123‘,
}
while count <=3:
    user=input(‘user:‘)
    password=input(‘password:‘)
    if user == dic[‘user‘] and password == dic[‘password‘]:
        print(‘‘‘connecting to 192.168.10.1:22...
connection established.
To escape to local shell,press ‘Ctrl+Alt+]‘
        ‘‘‘)
        while tag:
            command=input(‘[[email protected] ~]#‘)
            print(‘run command: %s‘ %command )
            if not command:
                continue
            elif command in [‘exit‘,‘quit‘,‘q‘]:
                print(‘logout‘)
                break
        break
    else:
        print(‘输入错误,请重新输入,第 <%s> 次‘ %count)
        if count == 3:
            print(‘Please login again‘)
            break
        else:
            count+=1
            continue
2、升级需求:

1、可以支持多个用户登录 (提示,通过列表存多个账户信息)

2、用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)

count=1
tag=True
dic={
    ‘user‘:[‘lqx‘,‘yft‘],
    ‘password‘:[‘123‘,‘456‘],
    ‘auth_pass‘:{‘lqx‘:‘123‘,‘yft‘:‘456‘}
}
while count <=3:
    user=input(‘user:‘)
    password=input(‘password:‘)
    if user in dic[‘user‘] and password in dic[‘password‘]  and  password == dic[‘auth_pass‘][user]:
        print(‘‘‘connecting to 192.168.10.1:22...
connection established.
To escape to local shell,press ‘Ctrl+Alt+]‘
        ‘‘‘)
        while tag:
            command=input(‘[[email protected]%s ~]#‘ %user)
            print(‘<%s># %s‘ %(user,command) )
            if not command:
                continue
            elif command in [‘exit‘,‘quit‘,‘q‘]:
                print(‘logout‘)
                break
        break
    else:
        print(‘输入错误,请重新输入,第 <%s> 次‘ %count)
    count+=1
    continue
时间: 2024-10-10 17:42:02

流程控制之if...elif...else和流程控制之while循环的相关文章

源码分析篇 - Android绘制流程(三)requestLayout()与invalidate()流程分析

本文主要探讨能够触发performTraversals()执行的invalidate().postInvalidate()和requestLayout()方法的流程.invalidate()和postInvalidate()能够触发View的重画,这两个方法最终会调用到performTraversals()中的performDraw()来完成重绘制,但是是否会执行onMeasure()和onLayout()过程要根据标志位的状况来决定:requesetLayout()方法也会调用到perform

流程中心使用详情(三)流程设计

第4章流程使用说明 以[出差申请]流程为例,讲述如何通过流程中心定义一个完整的流程. 4.1 新建分类 流程中心->流程设置->分类设置,新建[行政管理]分类,如下图所示: 点击[保存]后,界面如下图所示: 此菜单下的流程分类与工作流中的流程分类概念是一致的.流程分类更方 便了流程的管理,把不同性质的流程放在不同的分类下,也方便了流程的查 找.同时根据流程分类的所属部门,实现了流程分类按部门进行独立管理的目 的. 4.2 新建流程 点击[新建流程],进入新建流程的界面,如下图所示: 在该界面上

Android 4.4 Kitkat Phone工作流程浅析(十)__&quot;通话显示&quot;查询流程

本文来自http://blog.csdn.net/yihongyuelan 转载请务必注明出处 本文代码以MTK平台Android 4.4为分析对象,与Google原生AOSP有些许差异,请读者知悉. 前置文章: <Android 4.4 Kitkat Phone工作流程浅析(一)__概要和学习计划> <Android 4.4 Kitkat Phone工作流程浅析(二)__UI结构分析> <Android 4.4 Kitkat Phone工作流程浅析(三)__MO(去电)流程

Asp.Net MVC 权限控制(三):Controller和Action级别控制

续接上篇:Asp.Net MVC 权限控制(二):Controller级别控制 再次在重构!这次对Controller和Action进行验证. 思路:系统有很多功能集,功能集对应很多Controller和Action,角色分配很多功能集. 首先构建一个基础数据: 1.功能集初始化: /// <summary> /// 系统模块 /// </summary> public class SystemModule { public SystemModule() { this.ID = G

第七章主要讲的是控制发光二极管的驱动程序,用来控制开发板上的4个led灯

首先讲了led驱动的实现原理,linux驱动并不是直接向硬件的内存中写数据,而是与本机的i/o内存进行交互,每一个连接linux的硬件在i/o内存中都会有映射首地址. 编写驱动程序,先创建led驱动的设备文件: 1.使用cdev_init函数初始化cdev 描述设备文件需要一个cdev的结构体,cdev的大多是成员变量并不需要我们去初始化,只要调用cdev_init函数就可以初始化大部分cdev的成员变量 2.指定设备号 Linux 的设备的文件号分为 主设备号和此设备号,设备号有两种指定方法:

关于控制下拉框只读的js控制

文本框有readonly属性,直接设置:下拉框没有readonly属性,也不能通过其他属性进行只读的设置,下拉框只有disabled属性,但是这个属性设成true之后,值就获取不到了: 我在网上搜了一下,大部分是控制鼠标.键盘事件,来控制只读的(即:不让下拉框获取焦点) 代码如下: <span onmousemove="this.setCapture();" onmouseout="this.releaseCapture();" onfocus="t

Visual LISP 第3章 程序的流程控制盒AutoLISP文件(1)程序的流程控制

AutoLISP程序的流程通过流程控制函数控制. 1.分支结构 (1)(cond(测试表达式1 结果表达式1)[(测试表达式2 结果表达式2)]……) [例] 1 (setq n( cond((<= i 1) 1) 2 ((<= i 1) 1) 3 ((<= i 2) 4) 4 ((<= i 3) 10) 5 (t 100) 6 ) 7 ) 说明:该函数类似C语言中的switch语句.最后一个测试表达式"t(或T)"相当于"default",

PO_标准采购流程请购采购接受入库(流程)

2014-06-03 BaoXinjian 一.摘要 介绍一个完整的采购流程,包括操作与对应的底层数据表查询,流程包含了请购->采购->接受->入库 1. 开立请购单 2. 对请购单进行审批 3. 通过自动匹配产生采购单 4. 对采购单进行审批 5. 接收采购单 6. 进行入库交易 二.流程操作 1. 开立请购单 (1). Path: PO-->申请-->申请 请购单PLSQL SELECT prh.requisition_header_id, prh.segment1, p

金蝶KIS 13.0专业版破解方法破解安装流程 金蝶KIS 13.0专业版安装流程

金蝶KIS 13.0安装 1.先安装操作系统Windows server 2008 R2. 2.再安装SQL2008 R2. 3.再安装金蝶KIS 13.0专业版.在安装时记住需要将系列号设置成为10位,便于后面的破解.序列号默认为日期,后面加两个0变成10位系列号. 金蝶KIS 13.0破解 1.拷贝DLL到安装目录. 2.运行Keygen.exe程序,填写系列号,生成lisence文件. 3.在金蝶KIS账套管理器里,导入注册文件,即可完成破解. 汉码盘点机原创,转载请注明出处. 汉码盘点机