如果,elif,打印基于python中输入的三个变量

时间:2017-09-21 21:27:33

标签: python variables if-statement printing return

HELP!我坚持使用这个python脚本。所以基本上我希望我的程序在从用户收到所有三个变量的输入时运行代码的第一部分。

如果有,我试图基本上有。在a中,在b中划线,和。然后在c中运行这些打印语句。否则,请执行以下操作。注意:第一个代码与其他代码具有不同的打印语句。我想让它运行代码的第一部分,基于a,b,c都有输入。感谢帮助

a = raw_input("Enter ip address: ")
b = raw_input("Enter range: ")
c = raw_input("Enter network: ")

#should print ip adress, range, and network combined 
if '.' in a + '-' in b + '.' in c:
  ips = b.split('-')
  print 'config firewall address\n','edit "ip-' + str(a) + '"'
  print 'set subnet ' + str(a) + '/32'
  print 'next'
  print 'edit "ip-' + str(b) + '"'
  print ('set type iprange')
  print ('set start-ip '+ips[0])
  print 'set end-ip '+ips[1]
  print 'next'
  print 'edit "net-' + str(c) + '"'
  print 'set subnet ' + str(c) + ''
  print 'next'
  print 'end'

输出

其余代码基于用户输入运行。

#SHOULD print ip adress, range, and network combined
Enter ip address: 10.203.1.10
Enter range: 10.228.50.88-10.228.50.91
Enter network: 172.27.0.0/16
config firewall address
edit "ip-10.203.1.10"
set subnet 10.203.1.10/32
next
end

我不希望最后一个输出像那样。这是我想要的输出。

Enter ip address: 10.203.1.10
Enter range: 10.228.50.88-10.228.50.91
Enter network: 172.27.0.0/16
config firewall address
edit "ip-10.203.1.10"
set subnet 10.203.1.10/32
next
edit "ip-10.228.50.88-10.228.50.91"
set type iprange
set start-ip 10.228.50.88
set end-ip 10.228.50.91
next
edit "net-172.27.0.0/16"
set subnet 172.27.0.0/16
next
end

我需要做什么?

1 个答案:

答案 0 :(得分:0)

如果要检查多个条件是否为真,而不是:

if '.' in a + '-' in b + '.' in c:

......你应该使用:

if all(['.' in a, '-' in b, '.' in c]):

...或...

if '.' in a and '-' in b and '.' in c:

您还需要确保正确缩进代码。