循环判断和布尔类型

运算符

  • 赋值运算

    •   

  • 比较运算

    •   

  • 逻辑运算

    •   

布尔值

  • python中的布尔值为两种,一种为True(真),一种为False(假)

    # python的数据类型自带布尔值
    >>> bool(1) == True
    True
    >>> bool([1,2,3]) == True
    True
    >>> bool((1,2,3)) == True
    True
    ​
    # 可以看到上边都返回了True,是因为他们是真的,那么什么是假的呢?
    >>> bool(0) == True
    False
    >>> bool('') == True
    False
    >>> bool(None) == True # None 代表空
    False
    # 看到上边的代码可以得出一个结论,0 和 空为假,非空非0为真
    

      

if判断

  • 接下来说一下python中的if判断语句

    • if判断 (传递判断条件,成功执行什么,失败执行什么)

      # if的语法,python是根据缩进来控制代码块的,代码缩进要保持一样,否则会报错
      if 判断条件:
             print('判断条件条件1成立会执行我')
         elif 判断条件2:
             print('判断条件条件2成立会执行我')
         else:
             print('判断条件都不成立会执行我')
    • 代码示例
    • >>> if 1 == 1:
      ...     print('真的')
      ...
      真的
      ​
      >>> if 1 == 2:  # 条件不成立,不会执行下面的代码
      ...     print('真的')
      ...
      ​
      # else语句
      >>> if 1 == 2:  # 条件不成立会执行else下面的代码
      ...     print('真的')
      ... else:
      ...     print('假的')
      ...
      假的
      ​
      # elif 多判断语句 
      >>> inp = input('请输入你的性别: ')# input函数用来接收用户的输入,接收的值都会转换为字符串
      请输入你的性别:男
      >>> if inp == '':
      ...     print('你是个男的')
      ... elif inp == '':
      ...     print('你是个女的')
      ... else:
      ...     print('你啥也不是')
      ...
      你是个男的
      ​
      # 演示一下错误的代码
      >>> if 1 == 1:
      ...     print('是真的')
      ...     else:   # 这里的else多缩进了4个空格,和上面的if没在同一缩进,所以报错了
        File "<stdin>", line 3
          else:
             ^
      SyntaxError: invalid syntax # SyntaxError 代表语法错误
      View Code

       


while循环

  • 为什么要用while循环呢?举一个例子,加入你设计一款猜数字游戏,让用户去输入,难道要每输入一次就要重新运行一下程序吗?当然这是可以得,但是这种设计很影响体验,效率特别低,这就用到了while循环。

    # while循环的语法:
    while 判断条件: # 当判断条件为False时退出循环
    条件成立要执行的代码
           
    # 举一个简单的猜数字游戏的例子
    >>> while True: # 代表死循环,因为True永远为为真
    ...     choice = input('请猜一个数字: ')
    ...     if choice == '10':# 上面说到input接受的都是字符串,如果需要进行数字比较,需要转换类型
    ...         print('猜对了')
    ...     else:
    ...         print('猜错了')
    ...
    请猜一个数字: 2
    猜错了
    请猜一个数字: 4
    猜错了
    请猜一个数字: 10
    猜对了
    请猜一个数字:  # 即使猜对了,还是要求输入,是因为没有结束循环
    # 改进一下: 猜对了退出循环,用到break语句来控制退出整个循环
    >>> while True:
    ...     choice = input('请猜一个数字: ')
    ...     if choice == '10':
    ...         print('猜对了')
    ...         break
    ...     else:
    ...         print('猜错了')
    ...
    请猜一个数字: 2
    猜错了
    请猜一个数字: 4
    猜错了
    请猜一个数字: 10
    猜对了
    ​
    # 还有一个continue语句,他是用来退出本次循环,而不是整个循环
    >>> while True:
    ...     choice = input('请猜一个数字: ')
    ...     if choice == '0':
    ...         print('不可以输入0')
    ...     elif choice == '10':
    ...         print('猜对了')
    ...         break
    ...     else:
    ...         print('猜错了')
    ...
    请猜一个数字: 2
    猜错了
    请猜一个数字: 4
    猜错了
    请猜一个数字: 0
    不可以输入0   # 不会退出整个循环,继续下一次循环
    请猜一个数字: 10
    猜对了
    View Code


    # 当循环里面又嵌套了另外一个循环怎么办?怎么可以从里层循环全部退出呢(如果从里层循环break只会退出当前循环,而不会推出外层的)?这就用到了控制开关
    tag = True  # 设置一个开关为True
    >>> while tag:
    ...     inp = input('请输入你的名字: ')
    ...     while tag:
    ...         inp2 = input('请输入你的家在哪: ')
    ...         if inp2 == '黑龙江':
    ...             tag = False # 如果这里用的是break的话,还会让你继续输入你的名字
    ...
    请输入你的名字: dingh
    请输入你的家在哪: 吉林
    请输入你的家在哪: 黑龙江   # if条件成功,执行tag = False,所有循环条件都不成立了
    ​
    # while else语句,只要循环正常执行完成,中途没有被break打断就会执行else语句
    >>> count = 0
    >>> while count < 10:
    ...     print(count)
    ...     count += 1
    ... else:
    ...     print('只要循环没有被break打断,就会执行我')
    ...
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    只要循环没有被break打断,就会执行我
    

      

     

for循环

  • for循环是一种迭代式循环,可以循环各种序列,例如list,str等等

    # for循环语法
    for 用于接收的对象 in 要循环的对象:
    要执行的代码块

    # for基础用法
    >>> for num in [1,2,3,4,5]:
    ...     print(num)
    ...
    1
    2
    3
    4
    5
    # 其实很好理解,定义一个num每次从[1,2,3,4,5]取出来一个值,并执行下边的语句,当[1,2,3,4,5]没有值的时候自动退出循环,因为是每次只取一个值,所以好处是会占用很少的内存
        num = 1
        print(num)
        num = 2
        print(num) ......
        
    # for循环也支持break和continue,和while循环里面的功能是完全一样的
    # continue
    >>> for num in [1,2,3,4,5]:
    ...     if num == 3:    # 当遇到 num = 3的时候,退出本次循环不执行下边的代码
    ...         continue
    ...     print(num)
    ...
    1
    2
    4
    5
    # break
    >>> for num in [1,2,3,4,5]:
    ...     if num == 3:    # 当遇到 num = 3的时候,退出当前循环体
    ...         break
    ...     print(num)
    ...
    1
    2
    

      

     
  • 练习题(网上摘抄)

    • while循环

    1. 使用while循环输出1 2 3 4 5 6     8 9 10
    2. 求1-100的所有数的和
    3. 输出 1-100 内的所有奇数
    4. 输出 1-100 内的所有偶数
    5. 求1-2+3-4+5 ... 99的所有数的和
    6. 用户登陆(三次机会重试)
    7:猜年龄游戏
    要求:
       允许用户最多尝试3次,3次都没猜对的话,就直接退出,如果猜对了,打印恭喜信息并退出
    8:猜年龄游戏升级版
    要求:
       允许用户最多尝试3次
       每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序
       如何猜对了,就直接退出
    复制代码
    • for循环

      • 打印九九乘法表

posted @ 2018-10-25 21:21  浩小白  Views(727)  Comments(0Edit  收藏  举报