python之分支和循环

Day 1-night

  • 三元操作符
    • 语法:a=x if 条件 else y   即:当条件为True时,a的值赋值为x,否则赋值为y
    • eg:small=x if x
      • <=>     if x      else: small=y
    • 1 x=input("please input x:")
      2 y=input("please input y:")
      3 small=x if xelse y
      4 print(small)
  • 断言(assert)
    • 当assert这个关键字后的条件为假时,程序自动崩溃并抛出AssertionError的异常
    • eg:assert 3<4   正常
    • eg:assert 4<3

      • 报错:
          Traceback (most recent call last):
           File "1.py", line 5, in
           assert 4<3
           AssertionError

    • 用于在程序中置入检查点。当需要确保程序中的某个条件一定为真,才能让程序正常工作时,assert关键字作用很大
  • if 语句
    • 简单if语句结构:if conditionoal_test:
                     do something

    • if-elif-else语句(其中else可省略)
      1 age=12
      2 if age < 4:
      3     print("Your admission cost is $0.")        #4岁以下免费
      4 elif age <18:
      5     print("Your admission cost is $5.")        #4~18岁收费5美元,半价
      6 else:
      7     print("Your admission cost is $10.")    #18岁(含)以上收费10美元,全价
      8
      9 if age < 4: #精简版
      10  price = 0
      11 elif age < 18:
      12 price = 5
      13 elif age < 65:   #多个elif语句
      14 price = 10
      15 else: #年龄超过65,半价优惠
      16 price = 5
      17 print("Your admission cost is $" + str(price) + ".")
  • while循环语句
    • while 条件:
        循环体
  • for循环语句
    • 语法格式:
      for iterating_var in sequence: statements(s)
       
    •  for 迭代变量 in 遍历序列
        执行语句...
    •  执行过程: 依次将‘遍历序列’的每一个值传递给‘迭代变量’,每传递一个值时执行一次内部语句,直至‘遍历序列’的最后一个元素,for语句退出。
    •   遍历序列可以是字符串(str),列表(list),元组(tuple)…
  • range() 内建函数
    •   语法格式:
        ranage([start,]stop[,step=1]) 中括号括起来表示该参数可选,step=1表示第三个参数的默认值为1
    •    该BIF的作用为:生成一个从start参数的值开始,到stop参数的值结束的数字序列。常与for循环结合用于计数循环
    •    只传递一个参数的range(),eg:range(5),即:将第一个参数默认值设置为0,生成0~5的所有数字(包括0不包括5)
    •    也有只传递两个参数的range(),eg:range(2,9) 输出2~9(不包括9)
    •    传递三个参数的range(),eg:range(1,10,2) 输出1,3,5,7,9 
  • break 语句
    • 终止当前循环,跳出循环体
  • continue 语句
    • 终止本轮循环并开始下一轮循环(在开始下一轮循环之前,会先测试循环条件)  
  • Question:
    • 1 for i in range(10):
      2     if i%2!=0:
      3         print(i)
      4         continue
      5     i+=2
      6 print(i)

      执行结果为 1 3 5 7 9 9 (省略换行)
      不懂运行方式?待解决

  • Answer:
    1 for i in range(10):
    2     if i%2!=0:
    3         print(str(i)+'YES')
    4         continue
    5     i+=2
    6     print(str(i)+'NO')
    7 print(i)

              执行结果为 2NO 1YES 4NO 3YES 6NO 5YES 8NO 7YES 10NO 9YES 9
       因此,通过对比我们可得知python for循环的执行机制:在range内是一个从0~10(不包括10)的列表,每执行一次for条件判断,就依次将0~9赋值给i,也就是说,i最终的值只在for条件判断中改变,循环体内i的值改变不会产生影响,即不保留到下一次循环;而对比C语言,for(i=0;i<10;i++),循环体内i的值可保留至下一次,在判断条件是,只需i++
     即,对于该题来说,首先,i被赋值为0,偶数,不满足if条件,执行i+=2,i=2;下一次for循环,i被赋值为1,奇数,满足if条件,输出1,continue,结束本次循环;接着,i被赋值为2,偶数,...

转载于:https://www.cnblogs.com/maggie-zhang/p/10234754.html

你可能感兴趣的:(python之分支和循环)