返回顶部
首页 > 资讯 > 后端开发 > Python >python if for在同一行
  • 257
分享到

python if for在同一行

python 2023-01-31 01:01:56 257人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

for...[if]...构建List (List comprehension) 1.简单的for...[if]...语句python中,for...[if]...语句一种简洁的构建List的方法,从for给定的List中选择出满足if

for...[if]...构建List (List comprehension)
1.简单的for...[if]...语句
python中,for...[if]...语句一种简洁的构建List的方法,从for给定的List中选择出满足if条件的元素组成新的List,其中if是可以省略的。下面举几个简单的例子进行说明。

>>> a=[12,3,4,6,7,13,21]
>>> newList =[x forx ina]
>>> newList
[12,3,4,6,7,13,21]
>>> newList2 =[x forx ina ifx%2==0]
>>> newList2
[12,4,6]
?

省略if后,newList构建了一个与a具有相同元素的List。但是,newList和a是不同的List。执行b=a,b和newList是不同的。newList2是从a中选取满足x%2==0的元素组成的List。如果不使用for...[if]..语句,构建newList2需要下面的操作。

>>> newList2=[]
>>>forx ina:
... ifx %2==0:
...    newList2.append(x)
>>> newList2
[12,4,6]
?

显然,使用for...[if]...语句更简洁一些。

2.嵌套的for...[if]...语句
嵌套的for...[if]...语句可以从多个List中选择满足if条件的元素组成新的List。下面也举几个例子。

>>>a=[12,3,4,6,7,13,21]
>>>b=['a','b','x']
>>>newList=[(x, y) forx ina fory inb]
>>>newList
[(12,'a'), (12,'b'), (12,'x'), (3,'a'), (3,'b'), (3,'x'), (4,'a'), (4,'b'), (4,'x'), (6,'a'), (6,'b'), (6,'x'), (7,'a'), (7,'b'), (7,'x'), (13,'a'), (13,'b'), (13,'x'), (21,'a'), (21,'b'), (21,'x')]
>>>newList2=[(x, y) forx ina fory inb ifx%2==0and y<'x']
>>>newList2
[(12,'a'), (12,'b'), (4,'a'), (4,'b'), (6,'a'), (6,'b')]
?

嵌套的for...[if]...语句与多重for语句相当,最前面的for语句是最外层的循环。

善用Python的else子句
在日常coding中,分支语句的使用非常普遍,经常会根据是否满足一定的条件对代码执行的逻辑进行一些控制,所以大家对if[elif[else]]一定不会陌生。分支语句中的else子句在其它的条件不满足的时候会被执行到,适当的使用分支语句能够让我们的代码逻辑更加的丰富。
在分支语句中使用else子句在一些常见的编程语言中的用法基本相同,类似于提供了一条默认的执行路径,配合if等条件判断语句使用,相比其它的编程语言(C#, java, js等)在python中,else有一些特殊的用法,配合for, while等循环语句使用,甚至还能配合异常处理try except语句进行使用,能够让我们的代码更加的简洁。

1.配合for/while循环语句使用
在for循环语句的后面紧接着else子句,在循环正常结束的时候(非return或者break等提前退出的情况下),else子句的逻辑就会被执行到。先来看一个例子:

defprint_prime(n):
  fori inxrange(2, n):
    # found = True
    forj inxrange(2, i):
      ifi %j ==0:
         # found = False 
        break
    else:
      print"{} it's a prime number".fORMat(i)
    # if found:
         # print "{} it's a prime number".format(i)
print_prime(7)

结果:

2 it's a prime number
3 it's a prime number
5 it's a prime number

一个简单打印素数的例子,判断某个数字是否是素数的时候需要遍历比它自己小的整数,任何一个满足整除的情况则判断结束,否则打印这是一个素数的info,有了else的加持,整个例子的逻辑相当的“self-expressive”,如同伪代码一般的好理解而且相比在判断整除的时候设置标志值然后在函数的结尾处判断标志值决定是否打印数字时素数的消息,代码更简洁没有那么多要描述如何做的“过程式”准备工作。

ps: 大家可以把例子中的被注释代码运行对比下效果。

2.配合 try except错误控制使用
在异常处理语句中,else有相似的用法,当try代码块没有抛出任何的异常时,else语句块会被执行到。

defmy_to_int(str_param):
  try:
    printint(str_param)
  exceptValueError:
    print'cannot convert {} to a integer'.format(str_param)
  else:
    print'convert {} to integer successfully'.format(str_param)
my_to_int("123")
my_to_int("me123")

结果:

123
convert 123 to integer successfully
cannot convert me123 to a integer
?

如打印日志所示,在转换成功未发生错的的时候,else语句里的逻辑会被执行,当然这个例子可能并没有什么太多的实际的用处,但大致能说明else在错误处理中的用处:简化逻辑,避免使用一些标志值就能够准确把握是否发生错误的情况来做一些实际的操作(比如在保存数据的时候如果发生错误,在else语句块中进行rollback的操作,然后紧接着还能加上finally语句完成一些清理操作。

善用else语句块能够让我们编写出更加简明,更加接近自然语言的语义的代码,当然也会更加的pythonic,细微之处大家可以慢慢体会。


a, b, c = 1, 2, 3


1.常规


if a>b:

    c = a

else:

    c = b


2.表达式


c = a if a>b else b


3.二维列表


c = [b,a][a>b]


4.传说是源自某个黑客


c = (a>b and [a] or [b])[0]


--结束END--

本文标题: python if for在同一行

本文链接: https://lsjlt.com/news/184253.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python if for在同一行
    for...[if]...构建List (List comprehension) 1.简单的for...[if]...语句Python中,for...[if]...语句一种简洁的构建List的方法,从for给定的List中选择出满足if...
    99+
    2023-01-31
    python
  • python for循环remove同一
    下午在用python将Linux的conf配置文件转化成字典dict时遇到了一个奇怪的问题,原先conf配置文件中没有注释行(以#开头的行),后来为了避免这种情况,添加了一个对以#开头的行删除的操作。 实践结果颠覆了已有的认知,直接上代码示...
    99+
    2023-01-31
    python remove
  • Python 中的for,if-else
    for 循环 功能 for 循环是一种迭代循环机制,迭代即重复相同的逻辑操作,每次的操作都是基于上一次的结果而进行的。并且for循环可以遍历任何序列的项目,如一个列表或者一个字符串 语法 for 循环的一般格式如下: for <va...
    99+
    2023-01-30
    Python
  • python中if,for,while语
    if 条件 print() else (当不满足if条件时) print() 例如 age=input('请输入年龄') if age >= 18: print('你已经成年,欢迎来酒吧') else: ...
    99+
    2023-01-31
    python
  • Python中的if、while、for
    1.if/while/forpython缩进:main:     pass c  main(param) {} java  main(param){}if判断:if 判断条件:     执行语句 elif  判断条件:     执行语句 e...
    99+
    2023-01-31
    Python
  • python for循环if-else使
    mylist = [-1,0,1,2,3,4]; a = [i*2 for i in mylist];print(a) #[-2, 0, 2, 4, 6, 8] a = [i*2 for i in mylist if i>0];pr...
    99+
    2023-01-31
    python
  • python编程之if/for/whil
    1、python流程控制之if测试A、python对象的特点--所有对象都支持比较操作    数字:通过相对大小进行比较    字符串:按照字典次序逐字进行比较    列表和元组:自左至右比较各部分内容    字典:对排序之后的(键、值)列...
    99+
    2023-01-31
    python whil
  • Python if 和 for 的多种写
    a, b, c = 1, 2, 3 【对比Cpp里:c = a >b a:b】这个写法,python只能常规的空行,缩进吗? 人生苦短,我用python,下面介绍几种if的方便的方法。 1.常规 if a>b:   ...
    99+
    2023-01-31
    多种 Python
  • python if else单行
    python if else单行 a = [1,2,3] b = a if len(a) != 0 else "" b = [1,2,3]#结果 a = [] b = a if len(a) != 0 else "" b = "...
    99+
    2023-01-31
    python
  • 对于同一结构体,Golang 在 for 循环中 defer 的行为有所不同
    问题内容 我编写了以下 golang 代码并运行了它。 type test struct { name string } func (t test) hello() { ...
    99+
    2024-02-06
  • PHP 中的一行 if 语句
    作为程序员,我们通常必须根据某些条件做出决定,并编写在满足条件时由程序执行的代码。if 语句是所有编程语言中都可用的决策语句。我们将了解 PHP 中的一行 if 语句及其替代方法。 PHP 支持 4...
    99+
    2024-02-27
  • python合并相同行只保留一行
    python合并相同行只保留一行 文本:每行在开头一列字符串不一样的情况下,后面若字符串相同的,则认为是相同的行,对于相同的行,只保留一行。 思路: 根据字典和字符串切割。 建立一个空字典。 读入文本,并对每行切割前半部分,在读入文本的过程...
    99+
    2023-01-31
    python
  • python3.2 实现在同一行打印,实
    import time for i in range(100000): percent = 1.0 * i / 100000 * 100 print('complete percent:%10.8s%s'%(str(...
    99+
    2023-01-31
  • 解决v-if与v-for同时使用报错的问题
    在进行项目开发的时候因为在一个标签上同时使用了v-for和v-if两个指令导致的报错。 报错代码如下: <el-input   type="textarea...
    99+
    2024-04-02
  • MySQL for Python(一)
    一.安装mysql-python1.suse,redhat,fedora系统#yum install mysqldb2.debian,ubuntu系统# apt-get install python-mysqldb3.源码安装# http:...
    99+
    2023-01-31
    MySQL Python
  • 两个div在同一行且不换行的方法
    本篇内容介绍了“两个div在同一行且不换行的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • Vue中为什么要避免同时使用v-for和 v-if
    这篇文章主要介绍了Vue中为什么要避免同时使用v-for和 v-if,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。v-for 遍历避免同时使用 v-if为什么要避免同时使用&...
    99+
    2023-06-26
  • Python中在for循环中嵌套使用if和else语句的技巧
    for...[if]...构建List (List comprehension) 1.简单的for...[if]...语句 Python中,for...[if]...语句一种简洁的构建List的方法,从fo...
    99+
    2022-06-04
    嵌套 语句 技巧
  • 如何解决v-if与v-for同时使用报错的问题
    这篇文章主要介绍了如何解决v-if与v-for同时使用报错的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在进行项目开发的时候因为在一个标签上同时使用了v-for和v-i...
    99+
    2023-06-29
  • Python并行执行for循环
    简介 在介绍如何最简单地利用 python 实现并行前,我们先来看一个简单的代码。 words = ['apple', 'bananan', 'cake', 'dumpling'] for word in words:...
    99+
    2023-01-31
    Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作