我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python if for在同一行

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python if for在同一行

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]


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python if for在同一行

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python if for在同一行

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

python for循环remove同一

下午在用python将Linux的conf配置文件转化成字典dict时遇到了一个奇怪的问题,原先conf配置文件中没有注释行(以#开头的行),后来为了避免这种情况,添加了一个对以#开头的行删除的操作。 实践结果颠覆了已有的认知,直接上代码示
2023-01-31

对于同一结构体,Golang 在 for 循环中 defer 的行为有所不同

问题内容我编写了以下 golang 代码并运行了它。type test struct {name string}func (t test) hello() {fmt.printf("hello, %s\n", t.name)}fun
对于同一结构体,Golang 在 for 循环中 defer 的行为有所不同
2024-02-06

python合并相同行只保留一行

python合并相同行只保留一行文本:每行在开头一列字符串不一样的情况下,后面若字符串相同的,则认为是相同的行,对于相同的行,只保留一行。思路:根据字典和字符串切割。建立一个空字典。读入文本,并对每行切割前半部分,在读入文本的过程中循环在这
2023-01-31

python3.2 实现在同一行打印,实

import timefor i in range(100000): percent = 1.0 * i / 100000 * 100 print('complete percent:%10.8s%s'%(str(percent
2023-01-31

Python中在for循环中嵌套使用if和else语句的技巧

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

css如何让两个div在同一行显示

这篇文章主要介绍了css如何让两个div在同一行显示,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。两个div在同一行显示的方法:1、给两个div元素设置“display:in
2023-06-06

在win和Linux系统中python命令行运行的不同

今天,在完成一个小的python习题,习题的主要内容是读取一个帮助模块,并保存到本地文件。 知道是用pydoc进行模块的读取,但是在windows系统下,调用os模块之后,结果总是为空。 核心语句:helpfile = os.popen('
2022-06-04

python如何在一行中拆分单词

这篇文章主要介绍python如何在一行中拆分单词,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在一行中拆分单词将单词分割成一行不需要特殊的算法。 为此,我们可以使用关键字split()。 在这里,我写了两种分割单词的
2023-06-27

python如何在一行中创建函数

这篇文章给大家分享的是有关python如何在一行中创建函数的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一行创建函数Lambda是python中的匿名函数,可在一行中创建函数。 这里给出了使用lambda函数的语
2023-06-27

python和pycharm要安装在同一个路径下吗

python和pycharm无需安装在同一路径下。优点包括灵活性、兼容性和避免冲突。在pycharm中,需要遵循指定步骤来配置不同路径下的python解释器。Python和PyCharm需要安装在同一路径下吗?否,Python和PyCha
python和pycharm要安装在同一个路径下吗
2024-04-19

怎么在Python中利用for循环对字典进行迭代

今天就跟大家聊聊有关怎么在Python中利用for循环对字典进行迭代,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python的五大特点是什么python的五大特点:1.简单易学,开
2023-06-14

怎么在Python中利用subplot 在一张画布同时画多张图

这期内容当中小编将会给大家带来有关怎么在Python中利用subplot 在一张画布同时画多张图,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。subplot(arg1, arg2, arg3)arg1:
2023-06-06

在 Cloud Composer 中将同一运算符作为多个任务执行

问题内容我在 airflow 中有一个使用 cloud composer 执行的 pythonoperator:with DAG(dag_id = config['dag_id'],schedule_interval = config[
在 Cloud Composer 中将同一运算符作为多个任务执行
2024-02-08

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录