分享

Python入门基础——(章五 条件、循环及其他语句)

 静幻堂 2018-08-25
维也纳的雨落 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()

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多