pythonforif一行
⑴ python循环语句for是什么
python循环语句for是一种代码上实现循环的语法。
Python 有两种类型的循环:for 循环和 while 循环。for 循环用来遍历可迭代对象。可迭代对象是每次可以返回其中一个元素的对象, 包括字符串、列表和元组等序列类型。
python循环语句内容:
类似if语句的语法,如果你的while循环体中只有一条语句,你可以将该语句与while写在同一行中。Python for 循环可以遍历任何可迭代对象,如一个列表或者一个字符串。for 实例中使用了 break 语句,break 语句用于跳出当前循环体。
⑵ python中循环语句
1、if语句
Python中的if子句由三部分组成:关键字本身、用于判断结果真假的条件表达式以及当表达式为真或者非零时执行的代码块。if 语句的语法如下:
if expression:
expr_true_suite
if 语句的expr_true_suite代码块只有在条件表达式的结果的布尔值为真时才执行,否则将继续执行紧跟在该代码块后面的语句。
(1)多重条件表达式
单个if语句可以通过使用布尔操作符and、or和not,实现多重判断条件或是否定判断条件。
(2)单一语句的代码块
如果一个复合语句(例如if子句、while或for循环)的代码块仅仅包含一行代码,那么它可以和前面的语句写在同一行上。如if make_hard_: send_data_to_printer(),这样的单行语句是合法的, 尽管它可能方便,但这样会使得代码更难阅读, 所以推荐将这行代码移到下一行并合理地缩进。另外一个原因就是如果你需要添加新的代码, 你还是得把它移到下一行。
2、else语句
Python提供了与if语句搭配使用的else语句,如果if语句的条件表达式的结果布尔值为假,那么程序将执行 else 语句后的代码。其语法如下:
if expression:
expr_true_suite
else:
expr_false_suite
在C语言中,不会在条件语句范围外发现else语句, 但Python不同,可以在while和for循环中使用else语句,在循环中使用时,else子句只在循环完成后执行,也就是说break语句也会跳过else块。
例:显示出10到20中的数字的最大约数
在CODE上查看代码片派生到我的代码片
#!/usr/bin/env python
def showMaxFactor(num):
count = num / 2
while count > 1:
if (num % count == 0):
print 'largest factor of %d is %d' % (num, count)
break
count = count - 1
else:
pr
⑶ python中for循环放在后面要怎么理解
i因为闭包,lambda生成之后i引用的就是for循环中的i
建议你看一下python的列表生成器,
f = [(lambda n : i + n) for i in range(10)] 等同于
f=[]
for i in range(10)
f.append(lambda n : i + n)
下面是相关内容
列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。
举个例子,要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用range(1, 11):
>>> range(1, 11)[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
但如果要生成[1x1, 2x2, 3x3, ..., 10x10]怎么做?方法一是循环:
>>> L = []>>> for x in range(1, 11):... L.append(x * x)
...>>> L
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
但是循环太繁琐,而列表生成式则可以用一行语句代替循环生成上面的list:
>>> [x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
写列表生成式时,把要生成的元素x * x放到前面,后面跟for循环,就可以把list创建出来,十分有用,多写几次,很快就可以熟悉这种语法。
for循环后面还可以加上if判断,这样我们就可以筛选出仅偶数的平方:
>>> [x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]
还可以使用两层循环,可以生成全排列:
>>> [m + n for m in 'ABC' for n in 'XYZ']
['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']
三层和三层以上的循环就很少用到了。
运用列表生成式,可以写出非常简洁的代码。例如,列出当前目录下的所有文件和目录名,可以通过一行代码实现:
>>> import os # 导入os模块,模块的概念后面讲到>>> [d for d in os.listdir('.')] # os.listdir可以列出文件和目录['.emacs.d', '.ssh', '.Trash', 'Adlm', 'Applications', 'Desktop', 'Documents', 'Downloads', 'Library', 'Movies', 'Music', 'Pictures', 'Public', 'VirtualBox VMs', 'Workspace', 'XCode']
for循环其实可以同时使用两个甚至多个变量,比如dict的iteritems()可以同时迭代key和value:
>>> d = {'x': 'A', 'y': 'B', 'z': 'C' }>>> for k, v in d.iteritems():... print k, '=', v... y = B
x = A
z = C
因此,列表生成式也可以使用两个变量来生成list:
>>> d = {'x': 'A', 'y': 'B', 'z': 'C' }>>> [k + '=' + v for k, v in d.iteritems()]
['y=B', 'x=A', 'z=C']
最后把一个list中所有的字符串变成小写:
>>> L = ['Hello', 'World', 'IBM', 'Apple']>>> [s.lower() for s in L]
['hello', 'world', 'ibm', 'apple']
小结
运用列表生成式,可以快速生成list,可以通过一个list推导出另一个list,而代码却十分简洁。
思考:如果list中既包含字符串,又包含整数,由于非字符串类型没有lower()方法,所以列表生成式会报错:
>>> L = ['Hello', 'World', 18, 'Apple', None]
>>> [s.lower() for s in L]
Traceback (most recent call last):
File "<stdin>", line 1, in <mole>AttributeError: 'int' object has no attribute 'lower'
使用内建的isinstance函数可以判断一个变量是不是字符串:
>>> x = 'abc'>>> y = 123>>> isinstance(x, str)True>>> isinstance(y, str)False
请修改列表生成式,通过添加if语句保证列表生成式能正确地执行。
⑷ Python For+If写成一行
首先程序最重要的是容易理解和维护,不要盲目追求炫酷的写法。
其次你的代码有bug,假如字符串的第一位是X,你试试你的结果还正确吗?需求还需要澄清。
⑸ 这个是哪里出错了 python的列表推导式
题主你好,
你的问题出在不了解列表推导的语法.
先说一下你写的代码问题出在哪, 因为列表推导是一种语法糖, 语法糖这东西我的理解就是代码精简式的写法, 你可以简单的理解为正常的写法可能要10行, 用语法糖可能1行就搞定了. 优点是可以减少代码量, 缺点也显而易见,就是相对于常规写法一开始学起来理解要困难一些.
列表推导写法: n = [ j if j*5==10 ]
把你的这个1行的列表推导转化为常规写法要3行:
上面代码就形成了一个完整的闭环了.
所以学习列表推导很关键的一点是题主能否在常规代码与列表推导之间进行转换, 如果可以的话,题主写完列表推导后可以将其转化为常规代码去看, 如果常规代码没问题, 则列表推导自然也就是对的.
-----
扩展阅读:
网页链接该链接中有一些简单的例子,里面既给出了列表推导的写法也给出了相对应的常规写法,题主可以研究一下这二者是怎么转换的, 不难.
=====
希望可以帮到题主, 欢迎追问.
⑹ python for 语句怎么写
Python for循环控制语句一般格式及方法 for循环语句是python中的一个循环控制语句,任何有序的序列对象内的元素都可以遍历,比如字符串、列表List、元组等可迭代对像。之前讲过的if语句虽然和for语句用法不同,但可以用在for语句下做条件语句使用。
for语句的基本格式 python for循环的一般格式:第一行是要先定义一个赋值目标(迭代变量),和要遍历(迭代)的对像;首行后面是要执行的语句块。 for 目标 in 对像: print 赋值目标 for循环一个字符串操作方法
>>>a='iplaypython.com'>>>foriina:>>>printiiplaypython.com
如果想让目标在一行输出,可以这样写 >>>print i, i p l a y p y t h o n . c o m 案例中的 i 相当于目标,字符串变量a是遍历(迭代)对像。当运行for循环语句时,每一次迭代时,i 都会从遍历(迭代)对像a中接收一个新值输出。
结束循环后,目标(迭代变量)会保留最后一个值,这里可以先忽略理解,会在else语句中详细来讲解。 for循环列表操作方法
>>>a=[1,2,3,4]>>>foriina:
>>>printi,1234for循环元组赋值
>>>x=[('hello','python'),('very','good')]
>>>for(a,b)inx:
>>>print(a,b)('hello','python')('very','good')
Python for循环控制语句基本组成部分还有break、continue、else
learning=input('DoyouwanttolearnPythonnow(YesorNo):')
a=str(learning)
ifa=='Yes':
print('QQ1129834903')
else:
print('Thanks!!')