鱼C论坛

 找回密码
 立即注册
查看: 3583|回复: 4

[技术交流] if语句的一行流写法

[复制链接]
发表于 2023-1-12 13:31:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 coolplaylin 于 2023-1-12 13:32 编辑

使用if-else一行流的写法简化你的代码

if-else语句的作用应该不用赘述了吧

如果if-else语句判断的条件过多则可能造成代码十分冗长


让我来教你if-else的单行写法吧~

结构
  1. 值1 if 条件 else 值2
复制代码
也可以嵌套哦~

实践
例如算出一个数的绝对值,通常会这样写
  1. number = int(input())
  2. if number >= 0:
  3.     value = number
  4. else:
  5.     value = -number
  6. print(value)
复制代码

但如果使用一行流写法,就可以这样写
  1. number = int(input())
  2. print(number if number >= 0 else -number)
复制代码
代码的占用空间直接减少了四行!!!

挑战
将下列if-else写成单行形式
  1. name = input("你的名字?")
  2. if name == "小甲鱼":
  3.     reply = "I love FishC"
  4. elif name == "CoolPlayLin":
  5.     reply = "今天的代码写了吗"
  6. else:
  7.     reply = "拒绝访问"
  8. print(reply)
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-1-12 13:45:49 | 显示全部楼层
感觉有3个值的时候,写成单行就不合适了

  1. sh-5.1$ cat main.py
  2. #!/usr/bin/env python
  3. #coding=utf-8

  4. name = input("你的名字?")
  5. reply = "I love FishC" if name == "小甲鱼" else "今天的代码写了吗?" if name == "CoolPlayLin" else "拒绝访问"
  6. print(reply)
  7. sh-5.1$ ./main.py
  8. 你的名字?小甲鱼
  9. I love FishC
  10. sh-5.1$ ./main.py
  11. 你的名字?CoolPlayLin
  12. 今天的代码写了吗?
  13. sh-5.1$ ./main.py
  14. 你的名字?人造人
  15. 拒绝访问
  16. sh-5.1$
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-12 16:04:19 | 显示全部楼层
人造人 发表于 2023-1-12 13:45
感觉有3个值的时候,写成单行就不合适了
  1. reply = "I love FishC" if name == "小甲鱼" else "今天的代码写了吗?" if name == "CoolPlayLin" else "欢迎访问"   if name == "人造人" else "拒绝访问"
  2. print(reply)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-12 16:14:06 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-12 16:34:08 | 显示全部楼层

才来学习,请多关照。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-25 04:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表