鱼C论坛

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

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

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

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

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

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

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

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

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


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

结构
值1 if 条件 else 值2
也可以嵌套哦~

实践
例如算出一个数的绝对值,通常会这样写
number = int(input())
if number >= 0:
    value = number
else:
    value = -number
print(value)
但如果使用一行流写法,就可以这样写
number = int(input())
print(number if number >= 0 else -number)
代码的占用空间直接减少了四行!!!

挑战
将下列if-else写成单行形式
name = input("你的名字?")
if name == "小甲鱼":
    reply = "I love FishC"
elif name == "CoolPlayLin":
    reply = "今天的代码写了吗"
else:
    reply = "拒绝访问"
print(reply)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-12 13:45:49 | 显示全部楼层
感觉有3个值的时候,写成单行就不合适了
sh-5.1$ cat main.py
#!/usr/bin/env python
#coding=utf-8

name = input("你的名字?")
reply = "I love FishC" if name == "小甲鱼" else "今天的代码写了吗?" if name == "CoolPlayLin" else "拒绝访问"
print(reply)
sh-5.1$ ./main.py
你的名字?小甲鱼
I love FishC
sh-5.1$ ./main.py
你的名字?CoolPlayLin
今天的代码写了吗?
sh-5.1$ ./main.py
你的名字?人造人
拒绝访问
sh-5.1$
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2023-1-12 16:14:06 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

才来学习,请多关照。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-24 23:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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