Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 需要某种格式_Python - Fatal编程技术网

Python 需要某种格式

Python 需要某种格式,python,Python,所以我正试图为路由器终端模拟器编写一个代码。我用raw_input从键盘读取数据 问题是,当用户编写与此模式匹配的序列时,我想执行一个特定操作:“permit”,因此为了完成此操作,我编写了一个此类if: if input == "%d permit" %number: print 'Do this' 我希望数字是1-100范围内的值。我用range(1100)函数创建了一个列表,但我不知道如何在if中检查这个条件 我用分裂函数和其他一些条件解决了这个问题,但我真的无法克服这个想法,我

所以我正试图为路由器终端模拟器编写一个代码。我用
raw_input
从键盘读取数据

问题是,当用户编写与此模式匹配的序列时,我想执行一个特定操作:“permit”,因此为了完成此操作,我编写了一个此类if:

if input == "%d permit" %number:
    print 'Do this'
我希望数字是1-100范围内的值。我用
range(1100)
函数创建了一个列表,但我不知道如何在if中检查这个条件

我用分裂函数和其他一些条件解决了这个问题,但我真的无法克服这个想法,我想找到一个解决方案。任何帮助都将不胜感激

使用
重新匹配(模式、值)

if input == "%d permit" %number and number in range(1,101):
    print 'Do this'
变量
input
将覆盖内置函数
input()
,因此将名称更改为其他名称

EDIT:由于您不想使用RegExp,可以拆分字符串,将其传递给
int
,然后查看它是否在范围内

if 1 <= int(input.split(" ")[0]) <= 100:
    do_something()

如果1对不起,您的代码有什么问题吗?是否要根据号码执行不同的操作?如果是这样的话,一个更好的主意可能是创建一个“动作”的映射(甚至是一个列表),并使用该索引,而不是在XXXX
100次时尝试执行
。但如果你能解释一下你想做什么就更好了。因为解决方案可能会有所不同(可能也会更短)@AntonvBR,问题是没有定义%number,我不知道如何定义它,以便稍后在“if”中满足条件。@gabijit我希望对1-100范围内的所有数字执行相同的操作。这就是我想做的:一个路由器终端模拟器,当你可以输入不同的命令。i、 e:'1 permit host 10.0.0.1','1 permit?'(show命令)我尝试了这种方法,但我必须定义变量'number',这导致我完全困惑:number=0它不会被覆盖,它将是0,并且不会满足if语句,然后更改代码并编写类似于
number=int(input())的内容
并检查它是否在范围内。我无法更改代码。。这是一个我试图用预定义命令模拟的终端(1允许主机1.1.1.1,15拒绝主机1.2.3.4)。。您的建议将意味着两种不同的输入,我只需要一次原始输入。我避免使用match,因为我是编程/Python新手,我不完全理解这个函数。问题是您的代码适用于10-100,而不是1-100。谢谢你的回复!您的解决方案也是有效的,但我不寻找这种方法(使用re.match)C这是我在原始帖子中提到的解决方案。我通过拆分字符串解决了这个问题,但它让我抓狂,因为我无法按预期解决这个问题(如Attersson之前所述,if input=%d permit”%number and number in range(1101):)
if 1 <= int(input.split(" ")[0]) <= 100:
    do_something()