gpt4 book ai didi

python - while循环不会停止

转载 作者:太空狗 更新时间:2023-10-29 22:07:51 25 4
gpt4 key购买 nike

我在 Python 中有这个简单的代码:

import sys

class Crawler(object):

def __init__(self, num_of_runs):
self.run_number = 1
self.num_of_runs = num_of_runs

def single_run(self):
#do stuff
pass

def run(self):
while self.run_number <= self.num_of_runs:
self.single_run()
print self.run_number
self.run_number += 1

if __name__ == "__main__":
num_of_runs = sys.argv[1]
crawler = Crawler(num_of_runs)
crawler.run()

然后,我这样运行:

python路径/crawler.py 10

根据我的理解,它应该循环 10 次然后停止,对吧?为什么没有?

最佳答案

num_of_runs = sys.argv[1]

num_of_runs 是那个阶段的字符串。

while self.run_number <= self.num_of_runs:

你在这里比较一个 string 和一个 int

解决这个问题的一个简单方法是将其转换为 int

num_of_runs = int(sysargv[1])

另一种处理方法是使用 argparser

import argparse

parser = argparse.ArgumentParser(description='The program does bla and bla')
parser.add_argument(
'my_int',
type=int,
help='an integer for the script'
)

args = parser.parse_args()
print args.my_int
print type(args.my_int)

现在如果你像这样执行脚本:

./my_script.py 20

输出是:

20

使用 argparser 还默认为您提供 -h 选项:

python my_script.py -h
usage: i.py [-h] my_int

The program does bla and bla

positional arguments:
my_int an integer for the script

optional arguments:
-h, --help show this help message and exit

有关更多信息,请查看 argparser文档。

注意:我使用的代码来自 argparser 文档,但略有修改。

关于python - while循环不会停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29970679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com