python - 使用if语句与列表比较

python - 使用if语句与列表比较,第1张

这是我的问题:在阅读有关python网络编程的书籍时,我偶然发现了这段代码:

import socket, sys
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

if sys.argv[1:] == ['server']:
    s.bind('127.0.0.1', PORT)
    ...
    ... 

等等。我的问题是if语句是否检查sys.argv列表中的任何元素(第一项除外)是否与'server'相等。我尝试在IDLE for Python 3.2中执行此操作,但它不起作用。本书适用于python 2.7,所以我也试过了,但它仍然有用。

最佳答案:

4 个答案:

答案 0 :(得分:3)

不,它检查slice 1:形成的列表是否等于列表['server']

答案 1 :(得分:3)

sys.argv[0]是程序的名称,它被剥离。 sys.argv[1:] - 提供给程序的所有命令行参数。

if语句检查您的脚本只收到一个参数server

答案 2 :(得分:3)

不,这在任何版本的Python中都不起作用。唯一能做的就是检查从位置1开始的sys.argv只有一个元素,即'server'

答案 3 :(得分:2)

您可以使用以下结构检查'server'参数:

if 'server' in sys.argv[1:]:
    do_something()

将来,请使用argparse获取命令行参数。

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复