pythonforin语句
A. python for 循环中 in 关键字含义是什么
就是固定的一个格式 for...in循环
Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来,看例子:
names = ['Michael', 'Bob', 'Tracy']
for name in names:
print name
执行这段代码,会依次打印names的每一个元素:
Michael
Bob
Tracy
所以for x in ...循环就是把每个元素代入变量x,然后执行缩进块的语句。
第二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环。比如我们要计算100以内所有奇数之和,可以用while循环实现:
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print sum
在循环内部变量n不断自减,直到变为-1时,不再满足while条件,循环退出。
B. python中if和for语句的使用
while是Python中的循环语句,if属于条件选择语句,而for in属于迭代语句。
while 用于重复执行操作,重复的条件不一定是特定的次数,只要条件满足即可:
12345
# 打印1-5的平方x = 1while x <= 5: print(x ** 2) x = x + 1
if 与 循环迭代无关,在默认顺序执行代码的情况下,满意某个条件要以执行分支语句:
123
score = 66if score >= 60: print('及格')
for in用于遍历一个可迭代对象(如列表,元组,range等)的每一个元素,将迭代出的每个元素放入临时变量备用:
123
# 遍历1-5的序列元素,并打印平方for x in range(1,6): print(x ** 2)
C. python for in原理
怎么给你说呢?
这些牵涉到Iterables和Generator的定义.
先讲Iterables吧, 在Python中很多东西都可以使用for...in...来iterable,比如list, strings, 和files.这些iterables是方便,你可多次经行处理,因为你在内存中存储的所有值.
下面是个例子:
>>>mylist=[1,2,3]>>>foriinmylist:
..print(i)
1
2
3
>>>mylist=[x*xforxinrange(3)]
>>>foriinmylist:
...print(i)
0
1
4
然后是Generator. 广义上将Generator也是个Iterator, 但是你不能reset, 也就是说你只能历遍一次.因为内存存储的问题,当你使用yield的之前, 内存中存储的是你需要的值,当你调用完之后内存中存储的是你的下一个需要的值. 换句话说你如果用Generator内存的使用比较少.是一个常量.
下面是个例子:
>>>mygenerator=(x*xforxinrange(3))
>>>foriinmygenerator:
...print(i)
0
1
4
两个例子请注意括号的不同.
yield关键字工作原理与上面所说的Generator类似. 原理也一样,这也就是为什么当你得到最后一个值后,尝试着调用next()会出错的问题. 或者说长度为0, 因为此时内存中没有存值.
如果你想处理完,再次历遍输入内容. 给你介绍个比较简洁的方法.
y=FunctionWithYield()
y,y_backup=tee(y)
forxiny:
print(x)
forxiny_backup:
print(x)
tee() 函数,生成了一个列表,存储了所有的输入值.
题外话: 如果你学过Python相比你可能知道range和xrange两个不同的关键字. 例如在Python 2.x 中, 代码:
foriinrange(1000):pass
会导致生成一个 1000 个元素的 List,而代码:
foriinxrange(1000):pass
则不会生成一个 1000 个元素的 List,而是在每次迭代中返回下一个数值,内存空间占用很小。因为 xrange 不返回 List,而是返回一个类似的iterable 对象。
网上曾经有人尝尝着模拟range和xrange, 猜测xrange中包含yield的函数.实现结果也符合猜想.
结合上面所说的 这也就是为什么xrange更加高效.
至于yield内存使用方法, 确实没有深究. 所以不能给你提供更多信息. 但想必也已经解决了你的部分疑问.
D. 请问Python中 for in是怎么用的
for..in语句是另一个循环语句,它迭代一个对象的序列,例如经历序列中的第一项。在后面的章节,我们将会看到更多关于序列的细节。现在,你需要知道的是一个序列只是一个有序的项目的集合。
例如 (保存为 for.py):
for i in range(1, 5): print(i)else: print('for循环结束')
输出:
1
2
3
4
for循环结束
它是如何工作的:
打印一个数字序列。我们使用内置的range函数生成这个数字序列。
我们在这里所做的是提供两个数字,range返回一个从第一个数字到第二个数字的一个数字序列。例如,range(1,5)给出序列[1, 2, 3, 4]。默认情况下,range 步距取为1。如果我们提供第三个数字,range那么它变成了步距。例如range(1,5,2)得到[1,3]。请记住,范围扩展到第二号码,即它不包括第二个数字。
注意,range()生成一个数字序列,当for循环请求下一个项目时,它一次只生成一个数字。如果你想立刻看到完整的数字序列,使用list(range())。list(列表)将在[数据结构章]中解释。
for循环然后遍历这个范围,for i in range(1,5)相当于 for i in [1, 2, 3, 4],这就像把序列中的每一个数(或对象)分配给i,一次一个,然后为每个i值执行该语句块。在本例中,在语句块中我们只是打印它的值。
记住,else部分是可选的。当包括它时,除非遇到[break][#中断)语句,当for循环结束时,它执行一次。
记住,for..in循环可以作用于任何序列。在这里,我们对一个由内建的range函数生成的一个数字列表,但是一般来说,我们可以使用任何种类对象的任何类型的序列!在后面的章节,我们将详细探讨这个想法。
C/C++/Java/C#程序要注意:
Python的for循环完全不同于C/c++的for循环。c#程序员会注意到,在Python中for循环类似于c中的foreach循环c#。Java程序员会注意到,同样类似于在Java 1.5中的to for (int i : IntArray)。
在C/c++中,如果你想写for (int i = 0; i < 5; i++),那么在Python中你只要写 for i in range(0,5)。正如您可以看到的,在Python中for循环更简单,更富有表现力且不易出错。
E. python中 for 循环的in 是一定要的么
这是python的语法,
for example in examples: ....如果你学过C语言,你会发现python的这个for语句是包含了赋值、判断和自加这三部分,因为在c中for循环是:
for(i = 0;i<=10;i++){...}in在python中是判断当前example是否在examples中的意思,构成整个python的for循环,不能去掉。
F. 谁能给我讲讲,python里for in中的in究竟是什么意思(最好大白话)
意思是: 如果 i 在 什麽之中
for i in range(1,10):#这条语句的意思是 如果 i 在 1 到 10 之间时(不包括10)
相当于 其他常见编程语言的写法
for(i = 1 ;i<10;i++)
{
//do things
}
G. python中的for i in range怎么用
for in range是循环的意思。
示例:for i in range(1,5):
print(i)
上述语句的意思就是从1到5的循环,每循环一次打印一次i的值,1到5,共5回,打印五次i的值,即循环5次。
(7)pythonforin语句扩展阅读:
for循环是编程语言中一种开界的循环语句,而循环语句是由循环体及循环的终止条件两部分组成,for循环其在各种编程语言中的实现与表达有所出入,但基本为以C语言和pascal语言代表的两种形式。
for循环中的变量可以是一个也可以是多个,不要局限于一个变量处理到底,那样有时会很单调,当程序适合把多个变量组成循环时,用多个for语句来表示就是有些浪费了!
在C语言中,for循环中的"单次表达式"、"条件表达式"和"循环体语句"都是选择项, 即可以缺省成只剩下“;”的空语句, ";"不能缺省的原因是编译格式如此,缺省了编译器不认识而会报错。
省略了用来初始化的单次表达式时, 表示不对循环控制变量赋初值。
省略了条件表达式, 若不做其它处理则成为死循环。
省略了所有循环体, 则for语句不被其它形式处理时不产生任何作用。
H. Python for in 循环
你打开的是交互模式,这个模式只能调试代码块。第二个print和for循环不属于同一个代码块。
方法一,第一个print按两下回车,结束for代码块,再输入第二个print执行。
方法二,创建py文件,把代码输入的py文件中,然后直接运行py文件。