[英]How do I print multiple variables in a line of code?
!/usr/bin/env python3
import random
import socket
import time
import sys
import os
print ('Ping Of Death')
os.system("clear")
print
ip_death = input("ip:")
packetsize = input("size:")
print (ip_death)
os.system("ping ip_death, -s packetsize ")
我得到的输出是
ping: ip_death,: Name or service not known
我知道变量是因为我测试过的print (ip_death)
而定义的,并且总是与我的输入一起出现。
我是 python 的新手,只是想知道如何在一个命令中运行这两个变量。 如果想知道我正在尝试运行Ping example.com -s "size of packet"
。
您需要格式化字符串:
os.system("ping {}, -s {}".format(ip_death, packet_size))
您还可以通过在执行之前打印命令来验证您是否在做正确的事情:
command = "ping {}, -s {}".format(ip_death, packet_size)
print(command) # see that its what you wanted to execute
os.system(command)
目前,您只是将名称烘焙到字符串中。 Python 不会自动知道它应该格式化什么,不应该格式化什么。
另外 - 黑帽黑客很糟糕 <3
os.system(f"ping {ip_death}, -s {packetsize} ")
您可以使用f-strings
将变量直接插入到字符串中。 f-strings
由f"{variable}"
笔记:
os.system(f"ping {ip_death}, -s {packetsize} ")
仍然会失败,逗号会在cmd
抛出错误,
Ping 请求找不到主机 192.168.0.1,。 请检查名称并重试。
您需要删除逗号才能工作;
os.system(f"ping {ip_death} -s {packetsize} ")
平 192.168.0.1 -s 1
用 32 字节的数据 Ping 192.168.0.1:
来自 192.168.0.1 的回复:bytes=32 time<1ms TTL=255
时间戳:192.168.0.1:4742664
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.