• python的if语句、while循环、for循环


    if语句

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

    语法:

    1.单分支,单个条件判断

    if expression:

      expr_true_suite

    注释:expression为真执行代码expr_true_sutie

    2.单分支,多个条件判断

    if not active or over_itme>=10:

      print ('Warning:service is over')

    3.if与else

    if expression:

      expr_true_suite

    else:

      expr_false_suite

    4.多分支if+elif+else

    if expression1:

      expr1_true_suite

    elif expression2:

      expr2_true_suite

    elif expression3:

      expr3_true_suite

    else:

      expr_false_suite

    小结:

    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'))

    # a=1
    # if a :
    #     print ('ok')
    # b=1
    # if b-1:
    #     print ('ok')              #if判断也可使用表达式的方式

    9.所有标准对象均可用于布尔测试,同类型的对象之间可以比较大小。每个对象天生具有布 尔 True 或 False 值。空对象、值为零的任何数字或者 Null 对象 None 的布尔值都是 False。

    下列对象的布尔值是False

    练习

    #!/usr/bin/env python
    #_*_coding:utf-8_*_
    
    '''
     根据用户输入内容打印其权限
    
     lhc --> 超级管理员
     hj --> 普通管理员
     ys,dh --> 业务主管
     其他 --> 普通用户
    '''
    name = raw_input('请输入用户名:')
    
    
    if name == "lhc":
        print("超级管理员")
    elif name == "hj":
        print("普通管理员")
    elif name == "ys" or name == "dh":
        print("业务主管")
    else:
        print("普通用户")
    根据输入用户得出相应权限

     注意这里面有一个问题就是python2.x的版本input输入字符串会报错,需要使用raw_input。但是python3.x的版本就不用担心这个问,在python3中就没有raw_input。各位要看仔细了

    #!/usr/bin/env python
    #_*_coding:utf-8_*_
    
    '''
    提示输入用户名和密码
    
    验证用户名和密码
         如果错误,则输出用户名或密码错误
         如果成功,则输出 欢迎,XXX!
    '''
    
    import getpass
    
    name=raw_input('用户名: ')
    passwd=getpass.getpass('密码: ')
    
    if name == 'lhc' and passwd == '123':
        print(name,'欢迎')
    else:
        print('请重新输入')
    用户登录验证

    这里注意下import getpass模块,正常来说,用户名可见而密码不可见所以如果使用passwd=raw_input的话,那么在执行python脚本时你的密码就是可见得,这样来说不安全,所以使用getpass。passwd=getpass.getpass这样来写。这个例子最好在linux平台测试

    三元表达式

    语法:

    expr_ture_suite if experssion else expr_false_sutie

    红色的部分代表着一元,如果红色部分判断为真,则执行蓝色部分,代表第二元。如果红色部分判断为假,那么则执行绿色部分,代表第三元。这就是三元表达式

    例子

    test=1
    print('is True')if test else print('is False')
    is True
    test=0
    print('is True')if test else print('is False')
    is False

     while循环(条件循环)

    语法:

    while expression:

      suite_to_repeat

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

    例子

    计数循环
    count=0
    while (count < 9):
        print('the loop is %s' %count)
        count+=1
    
    
    无限循环
    while True:
        print ('-----')
    
    tag=True
    count=0
    while tag:
        if count == 100:
            tag=False
        print('the loop is %s' %count)
        count+=1

    循环的嵌套嵌套

    for  i in range(5):
        print ('======>第一层for')
        for j in range(2):
            print ('第二层for')
    
    for i in range(5):
        print ('======>第一层for')
        for j in range(2):
            print ('第二层for1')
            break                   #如果这是break的话 则第二层for2永远不会执行,虽然第二层for循环两次。但是只要碰到break直接跳出本层循环
            print ('第二层for2')
    
    for  i in range(5):
        print ('======>第一层for')
        for j in range(2):
            print ('第二层for1')
            continue        #如果是continue的话,那么第二层for2也永远不会执行,但是continue是跳过本次循环,说明在continue后面的循环都不会再运行,接着运行for j in range(2)。直到循环结束
            print ('第二层for2')

    标志位

    x=True
    while x:
        a=raw_input('level1')
        if a=='q':
            break
        if a == 'exit':
            x = False
        while x:
            b=raw_input('level2')
            if b=='q':
                break
            if b == 'exit':
                x = False
            while x:
                c=raw_input('level3')
                if c=='q':
                    break
                if c=='exit':
                    x=False
                while x:
                    d=raw_input('level4')
                    if d=='q':
                        break
                    if d=='exit':
                        x=False
    print ('next')
    标志位

     while循环的break,continue,else连用

    for i in range(10):
        print (i)
    else:
        print('Is ok')
    #当for循环正常结束后就会运行else的内容。正常结束:该有几次循环(操作)就要输出几次。
    
    for i in range(10):
        print (i)
        if i ==7:
            break
    else:
        print('Is ok')
    #这个例子就是非正常结束,else就不会运行。
    
    for i in range(10):
        print (i)
        if i ==7:
            continue
    else:
        print('Is ok')
    #但是使用continue就是正常结束。总结就是如果for循环中有breakelse就不会执行。

    同样的道理。在while循环中也可以使用else,使用方法跟for循环一样

    练习

    dic={
        'lhc':{'password':'123','count':0},
        'hj':{'password':'456','count':0},
        'ys':{'password':'789','count':0}
    }
    x=True
    while x:
        print ('<welcome to python world>')
        print ('')
        name=raw_input('please input your user:')
        if name not in dic:
            print ('No user!')
            continue
        else:
            if name  in dic and dic[name]['count'] == 3:
                print (name,'Your user is locked')
                continue
            else:
                passwd=raw_input('please input your password:')
                if passwd ==dic[name]['password']:
                    print ('welcome to python world %s !' %name )
                    break
                else:
                    print ('Password is error')
                    dic[name]['count'] += 1
                    print ('The user login error count',dic[name]['count'])
                    
    用户登录输入密码错误三次锁定

     小结:

    条件为真就重复执行代码,直到条件不再为真,而if是条件为真,只执行一次代码就结束了

    while有计数循环和无限循环两种,无限循环可以用于某一服务的主程序一直处于等待被连接的状态

    break代表跳出本层循环,continue代表跳出本次循环

    while循环在没有被break打断的情况下结束,会执行else后代码

     for循环

    字典循环
    # dic={'name':'chras_lee','age':18}
    # for i in dic.items():
    #     print i,i[1]                  #一个变量循环字典
    
    # dic={'name':'chras_lee','age':18}
    # for i in enumerate(dic):
    #     print (i,i[1],dic[i[1]])      #使用enumerate循环字典
    
    # dic={'name':'chras_lee','age':18}
    # for k,v in dic.items():
    #     print (k,v)                   #两个变量循环字典
    #
    # dic={'name':'chras_lee','age':18}
    # for k in dic.keys():
    #     print (k,dic[k])              #使用dic.keys取value值
    #
    # dic={'name':'chras_lee','age':18}
    # for v in dic.values():
    #     print (v)                     #使用dic.values直接取出value值
    
    # dic={'name':'chras_lee','age':18}
    # for k in dic:
    #     print (k,dic[k])                 #常用方法
    
    #直接for循环字典就是遍历字典的key
    循环字符串
    # mes='hello'
    # for i in mes:
    #     print (i)                 #for循环字符串
    
    # mes='hello'
    # for i in enumerate(mes):
    #     print i                    #使用enumerate将字符串以元组的方式遍历
    
    # mes='hello'
    # for i in mes[::-1]:
    #     print (i)                 #倒着循环
    循环列表
    # l=['a','b','c']
    # for i in l:
    #     print (i)                 #循环列表
    
    # l=['a','b','c']
    # for i in enumerate(l):
    #     print (i)                 #使用enumerate将列表以元组的方式遍历
    # 
    # l = ['a', 'b', 'c']
    # for i in l[::-1]:
    #     print (i)                 #倒着循环
    循环元组
    # t=('a','b','c')
    # for i in t:
    #     print (i)                 #循环元组
    #
    # t=('a','b','c')
    # for i in enumerate(t:
    #     print (i)                 #使用enumerate将元组以元组的方式遍历
    
    # t=('a','b','c')
    # for i in t[::-1]:
    #     print (i)                 #倒着循环

     待续。。。

  • 相关阅读:
    线段树----hdoj 1754 I here it
    树状数组----poj 2352 stars
    莫队算法
    枚举+深搜----poj 3279 Fliptile
    java 10 -09的作业
    java 09 06 thread-同步代码块-同步方法
    java09-05 join_daemon
    java09 02 Thread-yield 放弃
    java 07 jar
    java 08 作业
  • 原文地址:https://www.cnblogs.com/charles1ee/p/6374247.html
Copyright © 2020-2023  润新知