zoukankan      html  css  js  c++  java
  • 循环与分支——python

    循环结构
    程序设计中,最能发挥计算机特长的结构:循环结构
    需要重复进行某种运算,并且运算对象有规律变化的情况,使用循环结构

    使用for n in range(2,10)时,不包括10

    python中不支持直到型循环结构(后测循环实现)
    在这里插入图片描述但可以通过while语句间接实现:

    number = -1
    while	number < 0 
    	number = eval(input("Enter a positive number:"))
    

    或者

    while True:
    	number = eval(input("Enter  a positive number:"))
    	if x >= 0 : break;
    	#若数字有效跳出循环,哨兵循环
    	print("The number you entered was not positive")
    

    注意:与Java、C区别最大的地方
    <for… else: …> <while… else: …>语句与循环的搭配使用,else:后的表达式在for循环列表遍历完毕后或while 条件语句不满足的情况下执行,

    # months.py
    def main():
    	for n in range(2,10):
        	for x in range(2,n):
            	print("({},{})	".format(n,x))
            	if n%x == 0:
                	print(n,'equals',x,'*',n//x)
                	break;
        	else:
            	# loop fell through without finding a factor
            	print(n,'is a prime number')
    main()
    

    输出:
    2 is a prime number
    (3,2)
    3 is a prime number
    (4,2)
    4 equals 2 * 2
    (5,2)
    (5,3)
    (5,4)
    5 is a prime number
    (6,2)
    6 equals 2 * 3
    (7,2)
    (7,3)
    (7,4)
    (7,5)
    (7,6)
    7 is a prime number
    (8,2)
    8 equals 2 * 4
    (9,2)
    (9,3)
    9 equals 3 * 3

    分支结构

    if<condition1>:
    	<case1 statements>
    elif <condition2>:
    	<case2 statements>
    ……
    else:
    	<default statements>
    

    条件判断
    循环和分支使用的条件循环语句这里使用的不是!、||、&&,而是布尔表达式not、or、and
    布尔表达式满足或对与、与对或的分配律,满足德摩根定理

    有时候寻找一个循环终止的条件比寻找一个循环继续的条件更容易,但是条件过于复杂,解决方法:
    对布尔表达式使用几次德摩根定律

    注意不要将while rep==‘y’ or rep==‘Y’, 错写成 while rep == ‘y’ or ‘Y’, 因为’Y’是一个非空串,永远为真

    对于数字的0值默认为假,对于空字符串""默认为假,空序列默认为假。

    python的布尔运算符为短路运算符,当前面的表达式已经可以得出该布尔表达式的真假时,布尔表达式便不再进行下去。
    即x and y中,当x为假,则不在计算y的真假;
    x or y中,当x为真,就不在判断y的真假。

    举个栗子,当用户仅敲下回车键时,input()函数读入的串为空串,下面写一个函数,当用户输入为空时,将字符串赋值为vanilla

    实现方法一:

    ans = input("What flavor do you want [vanilla]:")
    if ans :
    	flavor = ans
    else:
    	flavor = "vanilla"
    

    实现方法二:
    ans = input(“What flavor do you want [vanilla]:”)
    flavor = ans or “vanilla”

    flavor=  input("What flavor do you want [vanilla]:") or "vanilla"
    

    异常处理
    当处理错误或特殊情况的分支语句过多,会导致主程序变得不清晰易读,于是,引入异常处理机制来解决程序运行时的错误。

    Python解释器遇到一个try语句,它会尝试执行try语句体内的语句
    如果没有错误,控制转到try-except后面的语句
    如果发生错误,Python解释器会寻找一个符合该错误的异常语句,然后执行处理代码

    try:
    	<body>
    except <ErrorType1>:
    	<handler1>
    except <ErrorType2>:
    	<handler2>
    except <ErrorType3>:
    	<handler3>
    except:
    	<handler0>
    
  • 相关阅读:
    HDU 4278 Faulty Odometer 8进制转10进制
    hdu 4740 The Donkey of Gui Zhou bfs
    hdu 4739 Zhuge Liang's Mines 随机化
    hdu 4738 Caocao's Bridges tarjan
    Codeforces Gym 100187M M. Heaviside Function two pointer
    codeforces Gym 100187L L. Ministry of Truth 水题
    Codeforces Gym 100187K K. Perpetuum Mobile 构造
    codeforces Gym 100187J J. Deck Shuffling dfs
    codeforces Gym 100187H H. Mysterious Photos 水题
    windows服务名称不是单个单词的如何启动?
  • 原文地址:https://www.cnblogs.com/createwell/p/12695593.html
Copyright © 2011-2022 走看看