python 3.6学习--基础2:while,if,for的使用,pass陈述。

1.while

>>> # Fibonacci series:
... # the sum of two elements defines the next
... a, b = 0, 1
>>> while b < 10:
...     print(b)
...     a, b = b, a+b
...
1
1
2
3
5
8
  • 第一行包含多个赋值:变量ab 同时获取新值0和1.在最后一行再次使用它,证明在任何赋值发生之前,右边的表达式都是先评估的。右侧表达式从左到右进行评估。

  • while只要条件(此处为:)保持为真,循环就会执行。在Python中,就像在C中一样,任何非零整数值都是真的; 零是假的。条件也可以是字符串或列表值,实际上是任何序列; 任何长度非零的东西都是真的,空序列都是假的。

 关键字参数end可用于在输出后避免换行,或者使用不同的字符串结束输出:

>>> a, b = 0, 1
>>> while b < 1000:
...     print(b, end=',')
...     a, b = b, a+b
...
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,

2.if ,elif

>>> x = int(input("Please enter an integer: "))
Please enter an integer: 42
>>> if x < 0:
...     x = 0
...     print('Negative changed to zero')
... elif x == 0:
...     print('Zero')
... elif x == 1:
...     print('Single')
... else:
...     print('More')
...
More

 3.for

Python的for语句迭代任何序列的项目(列表或string),按照它们出现在序列中的顺序。

>>> # Measure some strings:
... words = ['cat', 'window', 'defenestrate']
>>> for w in words:
...     print(w, len(w))
...
cat 3
window 6
defenestrate 12

 如果您需要修改在循环内迭代的序列(例如复制所选项目),建议您先复制一份。迭代序列不会隐式地复制。切片表示法使这特别方便:

>>> for w in words[:]:  # Loop over a slice copy of the entire list.
...     if len(w) > 6:
...         words.insert(0, w)
...
>>> words
['defenestrate', 'cat', 'window', 'defenestrate']

 4.range()函数

>>> for i in range(5):
...     print(i)
...
0
1
2
3
4

 给定的终点永远不是生成序列的一部分; range(10)生成10个值,长度为10的序列的项目的合法索引。可以让范围从另一个数字开始,或者指定不同的增量(甚至是负数;有时这称为“步骤”):

range(5, 10)
   5, 6, 7, 8, 9

range(0, 10, 3)
   0, 3, 6, 9

range(-10, -100, -30)
  -10, -40, -70

 要遍历序列的索引,您可以组合range()并 len()如下:

>>> a = ['Mary', 'had', 'a', 'little', 'lamb']
>>> for i in range(len(a)):
...     print(i, a[i])
...
0 Mary
1 had
2 a
3 little
4 lamb

 如果你只打印一个范围,就会发生一件奇怪的事:

>>> print(range(10))
range(0, 10)

在许多方面,返回的对象range()表现得好像它是一个列表,但事实上并非如此。它是一个对象,当您迭代它时,它返回所需序列的连续项,但它并不真正使列表,从而节省空间。

我们说这样的对象是可迭代的,也就是说,适合作为函数和构造的目标,这些函数和构造期望在供应耗尽之前它们可以从中获得连续的项目。我们已经看到该for语句是一个迭代器。功能list() 是另一个; 它从迭代创建列表:

>>> list(range(5))
[0, 1, 2, 3, 4]

 5.breakcontinue语句以及else循环条款

break声明中,类似于C,爆发最内层的 forwhile循环。

循环语句可能有一个else子句; 当循环通过列表耗尽(with for)或条件变为false(with while)时终止,但是当循环被break语句终止时不执行它。这通过以下循环来举例说明,该循环搜索素数:

>>> for n in range(2, 10):
...     for x in range(2, n):
...         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')
...
2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3

(是的,这是正确的代码,仔细一看:该else条款属于for循环,不是if。陈述)

当循环使用,该else条款有更多的共同点与 else一个条款try声明比它认为的 if语句:一个try语句的else时候也不例外条款发生运行和循环的else条款时没有运行break 发生。有关try语句和异常的更多信息,请参阅 处理异常

continue声明也是从C借用的,继续循环的下一次迭代:

>>> for num in range(2, 10):
...     if num % 2 == 0:
...         print("Found an even number", num)
...         continue
...     print("Found a number", num)
Found an even number 2
Found a number 3
Found an even number 4
Found a number 5
Found an even number 6
Found a number 7
Found an even number 8
Found a number 9

6.pass陈述

pass语句什么也不做。当语法需要语句但程序不需要操作时,可以使用它。例如:

>>> while True:
...     pass  # Busy-wait for keyboard interrupt (Ctrl+C)
...

 这通常用于创建最小类:

>>> class MyEmptyClass:
...     pass
...

 pass当您处理新代码时,可以使用另一个地方作为函数或条件体的占位符,允许您在更抽象的层次上继续思考。将pass被自动忽略:

>>> def initlog(*args):
...     pass   # Remember to implement this!
...

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值