我的图片 · 在线免费的图片处理工具

前言

刚接触Python,看文档中有

who = sys.argv[1] if len(sys.argv) > 1 else "世界"

一开始接触有点怪,但写成下面的我是懂的

import sys
if len(sys.argv) > 1:
    who = sys.argv[1]
else:
    who = "世界"

后面才知道那个是Python的三元运算。

正文

使用命令执行Python脚本

python hello.py
python hello.py 小红

sys.argv 是一个列表,装着命令行传进来的东西。第一个元素永远是脚本名,后面的才是用户传的参数:

# 不传参数
sys.argv = ['hello.py']

# 传一个参数
sys.argv = ['hello.py', '小红']

所以判断"有没有传参数",看的就是列表长度是不是大于 1。

先算 len(sys.argv) > 1,真就取 sys.argv[1],假就取 "世界",最后把选出来的那个值交给 who:

命令sys.argvwho
python hello.py['hello.py']"世界"
python hello.py 小红['hello.py', '小红']"小红"

三元运算

其实开头的那一行就是Python的三元运算。

值A if 条件 else 值B 就是 Python 版的三元运算,只是样子不同:

语言写法
Python值A if 条件 else 值B
C / Java / JavaScript条件 ? 值A : 值B
# 大多数语言:条件在前
条件 ? 值A : 值B

# Python:值A 在前
值A if 条件 else 值B

记法也简单:真值在前,条件在中,else 后面是假值。

参考文章

  • Python开发文档

暂无评论

评论审核已启用。您的评论可能需要一段时间后才能被显示。

none
暂无评论...