赞
踩
python入门合集:
python快速入门【三】-----For 循环、While 循环
For循环是迭代对象元素的常用方法(在第一个示例中,列表)
具有可迭代方法的任何对象都可以在for循环中使用。
python的一个独特功能是代码块不被{} 或begin,end包围。相反,python使用缩进,块内的行必须通过制表符缩进,或相对于周围的命令缩进4个空格。
虽然这一开始可能看起来不直观,但它鼓励编写更易读的代码,随着时间的推移,你会学会喜欢它
In [1]
- #取第一个列表成员(可迭代),暂称它数字(打印它)
- #取列表的第二个成员(可迭代),暂时将其称为数字,等等......
-
- for number in [23, 41, 12, 16, 7]:
- print(number)
- print('Hi')
- 23
- 41
- 12
- 16
- 7
- Hi
返回一个元组,其中包含每次迭代的计数(从默认为0开始)和迭代序列获得的值:
In [2]
- friends = ['steve', 'rachel', 'michael', 'adam', 'monica']
- for index, friend in enumerate(friends):
- print(index,friend)
- 0 steve
- 1 rachel
- 2 michael
- 3 adam
- 4 monica
从文本中删除标点符号并将最终产品转换为列表:
On a dark desert highway, cool wind in my hair Warm smell of colitas, rising up through the air Up ahead in the distance, I saw a shimmering light My head grew heavy and my sight grew dim I had to stop for the night There she stood in the doorway; I heard the mission bell And I was thinking to myself, "This could be Heaven or this could be Hell" Then she lit up a candle and she showed me the way
(加州旅馆)
In [3]
text = '''On a dark desert highway, cool wind in my hair Warm smell of colitas, rising up through the air Up ahead in the distance, I saw a shimmering light My head grew heavy and my sight grew dim I had to stop for the night There she stood in the doorway; I heard the mission bell And I was thinking to myself, "This could be Heaven or this could be Hell" Then she lit up a candle and she showed me the way'''
In [4]
print(text)
On a dark desert highway, cool wind in my hair Warm smell of colitas, rising up through the air Up ahead in the distance, I saw a shimmering light My head grew heavy and my sight grew dim I had to stop for the night There she stood in the doorway; I heard the mission bell And I was thinking to myself, "This could be Heaven or this could be Hell" Then she lit up a candle and she showed me the way
基本上,任何具有可迭代方法的对象都可以在for循环中使用。即使是字符串,尽管没有可迭代的方法 - 但我们不会在这里继续。具有可迭代方法基本上意味着数据可以以列表形式呈现,其中有序地存在多个值。
In [5]
- for char in '-.,;\n"\'':
- text = text.replace(char,' ')
- print(text)
On a dark desert highway cool wind in my hair Warm smell of colitas rising up through the air Up ahead in the distance I saw a shimmering light My head grew heavy and my sight grew dim I had to stop for the night There she stood in the doorway I heard the mission bell And I was thinking to myself This could be Heaven or this could be Hell Then she lit up a candle and she showed me the way
In [6]
- # Split converts string to list.
- # Each item in list is split on spaces
- text.split(' ')[0:20]
['On', 'a', 'dark', 'desert', 'highway', '', 'cool', 'wind', 'in', 'my', 'hair', 'Warm', 'smell', 'of', 'colitas', '', 'rising', 'up', 'through', 'the']
In [7]
- # Dont want to have non words in my list for example ''
- # which in this case are things of zero length
- len('')
0
In [8]
- # Making new list with no empty words in it
- cleaned_list = []
In [9]
- for word in text.split(' '):
- word_length = len(word)
- if word_length > 0:
- cleaned_list.append(word)
In [10]
cleaned_list[0:20]
['On', 'a', 'dark', 'desert', 'highway', 'cool', 'wind', 'in', 'my', 'hair', 'Warm', 'smell', 'of', 'colitas', 'rising', 'up', 'through', 'the', 'air', 'Up']
continue语句将转到循环的下一次迭代
continue语句用于忽略某些值,但不会中断循环
In [11]
- cleaned_list = []
-
- for word in text.split(' '):
- if word == '':
- continue
- cleaned_list.append(word)
- cleaned_list[1:20]
['a', 'dark', 'desert', 'highway', 'cool', 'wind', 'in', 'my', 'hair', 'Warm', 'smell', 'of', 'colitas', 'rising', 'up', 'through', 'the', 'air', 'Up']
break语句将完全打断循环
In [12]
cleaned_list = []
In [13]
- for word in text.split(' '):
- if word == 'desert':
- print('I found the word I was looking for')
- break
- cleaned_list.append(word)
- cleaned_list
I found the word I was looking for
['On', 'a', 'dark']
In [14]
- # Making empty lists to append even and odd numbers to.
- even_numbers = []
- odd_numbers = []
-
- for number in range(1,51):
- if number % 2 == 0:
- even_numbers.append(number)
- else:
- odd_numbers.append(number)
In [15]
print("Even Numbers: ", even_numbers)
Even Numbers: [2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50]
In [16]
print("Odd Numbers: ", odd_numbers)
Odd Numbers: [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49]
python 2 xrange and python 3 range are same (resembles a generator) python 2 range生成一个list
注意: 较长的列表会很慢
更多参考: http://pythoncentral.io/pythons-range-function-explained/
For 循环 | While 循环 |
---|---|
遍历一组对象 | 条件为false时自动终止 |
没有break也可以结束 | 使用break语句才能退出循环 |
如果我们希望循环在某个时刻结束,我们最终必须使条件为False
In [1]
- # Everytime through the loop, it checks condition everytime until count is 6
- # can also use a break to break out of while loop.
- count = 0
- while count <= 5:
- print(count)
- count = count + 1
- 0
- 1
- 2
- 3
- 4
- 5
使用break可以完全退出循环
In [2]
- count = 0
- while count <= 5:
- if count == 2:
- break
- count += 1
- print (count)
- 1
- 2
while True条件使得除非遇到break语句,否则不可能退出循环
如果您陷入无限循环,请使用计算机上的ctrl + c来强制终止
In [3]
- num = 0
- while True:
- if num == 2:
- print('Found 2')
- break
- num += 1
- print (num)
- 1
- 2
- Found 2
提醒:使用模运算符(%),它将数字左边的余数除以右边的数字
In [4]
- # 1 divided by 5 is 0 remainder 1
- 1 % 5
1
In [5]
- # 5 divided by 5 is 0 remainder 0
- 5 % 5
0
比较操作符 | 功能 |
---|---|
< | 小于 |
<= | 小于或等于 |
| 大于 = | 大于或等于 == | 等于 != | 不等于
In [6]
- x = 1
- while x % 5 != 0:
- x += 1
- print(x)
- 2
- 3
- 4
- 5
当我们知道要循环多少次时,Range很有用
下面例子是: 从0开始,但不包括5
In [7]
- candidates = list(range(0, 5))
- candidates
[0, 1, 2, 3, 4]
In [8]
- while len(candidates) > 0:
- first = candidates[0]
- candidates.remove(first)
- print(candidates)
- [1, 2, 3, 4]
- [2, 3, 4]
- [3, 4]
- [4]
- []
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。