python-3.x - 为什么输出是“p未定义”?
问题描述
import socket # Import socket module
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # Create a
socket object
host = socket.gethostbyname("www.itsecgames.com")
global port
for port in range(0,1):
try :
connect = s.connect((host,port))
print("Port [",port,"] : Connection accepted.")
global p
p = port
except :
print("Port [",port,"] : Connection refused.")
w = p
print(w)
我有:
w = p
NameError: name 'p' is not defined
解决方案
该问题只能在connect
throws时重现。
那是因为,在这种情况下,您从未设置p
. 由于您从未设置p
,并且在您这样做之前它不存在于全局范围内,因此w = p
是无效的。
考虑给它一些初始值,或者跳过整个w
事情,除非建立了连接。
具体来说,在这种情况下,您的connect
调用引发的原因是您试图连接到端口 0 上的网站。HTTP 网页通常可通过端口 80 访问。
推荐阅读
- scala - 理解部分函数中的“case”关键字
- python - 我无法运行多个使用 PYAUTOGUI 的用户定义函数
- kotlin - Kotlin 数据类不能初始化父类的属性
- java - 这是我的代码。在检查匹配直接的值之后,正在打印。IF 未执行。为什么?
- python - Eventhub 在python中将数据作为列表读取
- java - 如何获取 onExecustionStart Listener 方法的 TestNG Suite 名称?
- python - 正则表达式与 Python re 从行尾匹配
- mysql - 在mysql中的不同表上应用算术函数
- java - 如何从python中的字符串返回重复字符的索引
- java - 在Java中使用equals方法查找相等的对象