维也纳的雨落 2018-08-21 18:52:52 1.条件和条件语句1.1 布尔值用做表达式(如用if语句中的条件)时,下面的值都将被解释器视为假: False 、 None 、 0 、 " " 、 ( ) 、 [ ] 、 { } 标准值False 和None、各种类型(包括浮点数、负数等)的数值0、空序列(如空字符串、空元组和空列表)以及空映射(如空字典)都视为假。而其他各种值都被视为真,包括特殊值True。 其意思值为0(表示假)和1(表示真),True和False不过是0和1的别名。 >>> True > True >>> False > False >>> True == 1 > True >>> False ==0 > True >>> True + False + 42 > 43 布尔值True和False属于类型bool,而bool与list、str和tuple一样,可用来转换其他的值。 >>> bool('jack') > True >>> bool(42) > True >>> bool('') > False >>> bool(0) > False Python里自动将值转化成bool值 1.2 执行if语句内容>>> num = 1 >>> if num ==1: >>> print("hello world") if和冒号之间的表达式为真!!!!!!,就执行后续的代码(即print代码),如果条件为假,就不执行。 注意!!!!!:应注意缩进行,if下面的代码区应缩进4个空格,默认table为四个空格,在编写代码时空格键和table不要混合使用 1.3 else语句else所起的作用为除if(如果)以外,还有其他选择,else不是单独的一部分,与if的语句是同一个部分。 >>> num =1 ###直观一点 >>> if num = 2: >>> print("hello") >>> else: >>> print("hello world") 此代码的意思是,如果没有执行第一个代码块(因为条件为假),将进入第二个代码块。 还有一种语句和它们很像,那就是条件表达式 status = "friend" if name.endswith("Jack") else "stranger" 如果为真则,结果是第一个提供值,如果为假就是第二个值stranger。 1.4 elif要检查多个条件,可使用elif 即else if的缩写 >>> num = int(input('Number: ')) >>> if num > 0: >>> print("正整数") >>> elif num < 0: >>> print("负整数") >>> else: >>> print("0") 用户输入一个数,如果输入的是大于0的数则输出正整数,如果输入的是小于0的数,那么就输出负整数,剩下的只有等于0的数了,所以直接用else。 1.5 比较运算符is: 相同运算符 >>> x = y = [1,2,3] >>> z = [1,2,3] >>> x == y > True >>>x == z >True >>> x is y > True >>> x is z > False is 检查两个元素是否相同(而不是相等) x,y指向同一个列表而z指向另一个列表虽然相等,但不是同一个对象。 >>> x = [1,2,3] >>> y = [1,2,3] >>> x == y > True >>> x is y > False ==用来检查两个对象是否相等,而is用来检查两个对象是否相同(是同一个对象)。 in :成员资格运算符与其它比较运算符一样,它也可用于条件表达式。 >>> name = input('What is your name?') >>> if 's' in name: >>> print('Yes') >>> else: >>> print('No') 2. while循环>>> x = 1 >>> while x<=100: >>> print(x) >>> x+=1 以上用while打印1~100的数字,while和冒号之间的为条件满足后(如x<=100)才执行代码区的语句。 3. for循环可迭代对象是用for循环进行遍历的 >>> words = ['What','is','your','name'] >>> for word in words:#word:目标标识符,words:列表 >>> print(word) 或 >>> numbers = [0,1,2,3,4,5,6,7,8,9] >>> for number in numbers: >>> print(number) 迭代(也就是遍历)特定范围内的数是一种常见任务 4. 迭代如有两个列表 >>> names = ['jack','Ammy','Steven','Make'] >>> ages = [1,2,3,4] 如果要打印名字和对应的年龄 >>> for i in range(len(names)): >>> print(names[i],'is',ages[i],'years old') i 是用作循环索引的变量的标准名称,并行迭代工具是内置的zip,将两个序列“缝合起来”,并返回一个元组组成的序列。返回值是一个适合迭代的对象。 要查看内容,是用list转换为列表。 >>> list(zip(names,ages)) >>> [('jack',1),('Ammy',2),('Steven',3),(Make,4)] “缝合”后,可在循环列表中将元组解包 >>> for names,ages in zip(names,ages) >>> print(name ,'is',age,'years old') zip可以缝合任意数量的序列,当序列长度不同时,函数zip将在最短的序列用完后停止“缝合” >>> list(zip(range(5)),range(10000000000)) > [(0,0),(1,1),(2,2),(3,3),(4,4)] 5. 跳出循环5.1 break要跳出循环可以用break >>> from math import sqrt >>> for n in range(99,0,-1): >>> root = sqrt(n) >>> if root == int(root): >>> print(n) >>> break 以上是遍历从100到1,找到一个可开平方的值,找到以后要跳出 range传递了第三个参数—步数,即序列中相邻数的差。通过将步数调成负数,可让range往下迭代 5.2 continue结束当前迭代,并跳到下一次迭代的开头,意味着跳过循环体中余下的语句,但不结束循环。 >>> for x in seq: >>> if x:continue: >>> if y:continue: >>> if z:continue: >>> >>> do_something() >>> do_something_else() >>> do_another_thing() >>> etc() 其实一条语句就够了 >>> for x in seq: >>> if not(x or y or z): >>> do_something() >>> do_something_else() >>> do_another_thing() >>> etc() |
|