繁体   English   中英

如何在一行代码中打印多个变量?

[英]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-stringsf"{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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM