注册 登录
编程论坛 Python论坛

[新人贴]TypeError: argument of type 'bool' is not iterable

ouyang2009 发布于 2021-08-03 22:39, 1004 次点击
源码如下:
#相关信息:
#     项目名称:HackNet
#     工作室:rainbow
#     负责人:会飞的鱼
#     编辑器:IDLE(python 3.8 64-bit),Pycharm专业版
#
#设计架构图:
#     ----导入库
#    |
#     ----主程序部分
#             --函数部分
#             --程序设计
#             --程序加载

#======导入库======#
from time import* #时间库
#=================#

#======主程序部分======#

#------函数部分------#
user = True
Return = True
mail = True
mail2 = False
computer1 = False
computer2 = False
computer3 = False
computer4 = False
computer5 = False
computer6 = False
computer7 = False
computer8 = False
computer9 = False
mailtext = """
您好!
    我是你的朋友Nic
    昨天你说你想当黑客,我决定教教你。不过,你得先通过我的几个小测试。
    你知道telnet吗?这是一个连接到远程计算机的工具。你需要学会如何使用它。
    现在需要你用telnet连接到我的一个服务器上。我服务器的IP地址是29.53.103.3,用户名是root,密码是123456。连接成功后,请你立即用dc指令断开连接。
    你断开连接后,我会再给你寄一封邮件
    如果你有什么问题,可以使用系统的help指令。那里面有各种指令的使用说明。
    (提示:使用命令telnet 29.53.103.3)
    有关信息:
        指令:telnet 29.53.103.3
        用户名:root
        密码:123456
    """
#def nprint(text):
#      run = False
#      if run == False:
#            print("<192.168.1.102/", user ,"/>" , text , "\n<192.168.1.102/", user ,"/>") #192.168.1.102为玩家IP地址,user为输入的用户名,text为需要打印的内容
#            run = True
#      elif run == True:
#            print(text , "\n<192.168.1.102/", user ,"/>")
#-------------------#
def nprint(text):
    stdout.write('\r'+' '*0+'\r')
    stdout.flush()
    for df in text:
        stdout.write(df)
        stdout.flush()
        sleep(0.1)
def clear():
      print("\033[2J\033[1A",end="")
#------程序------#
#思路:
#     当输出框按下回车或发送键后,先使用nprint函数处理再打印到屏幕上
while True:
    if mail == True:
        print("\033[041m\033[004m您有新的邮件!输入mail查看\033[000m")
    elif mail == False:
        print("当前无邮件可获取")
    user = input("\033[031m<192.168.1.102/unknow/>\033[000m")
    cmd = "cmd" #定义检测内容
    telnet = "telnet" #定义检测内容
    get = user #哪一条字符串?
    if get in cmd: #判断这条字符串里是否含有检测内容
        print()
    elif get in telnet: #判断这条字符串里是否含有检测内容
        print()
    elif get in mail: #判断这条字符串里是否含有检测内容
        if mail == True: #如果mail为True,则输出邮件内容
            print(mail)
            mail = False #已阅读则更改函数为False
        elif mail == False: #如果mail为False,则输出没有邮件
            print("--------您没有新的邮件--------")[/color]
    else:
        print("\033[031m无效指令!\033[000m")
        sleep(1)
        clear()

运行报错:
Traceback (most recent call last):
  File "C:\Users\Desktop\HackNet\main.py", line 82, in <module>
    elif get in mail: #判断这条字符串里是否含有检测内容
TypeError: argument of type 'bool' is not iterable
我没有搞明白到底哪里错了,问题出在划线那一块
2 回复
#2
ouyang20092021-08-04 09:31
来个人帮一帮吧,真的很难搞啊,只要输入mail就会报错
#3
古1232021-08-05 07:57
回复 楼主 ouyang2009
是不是mail是bool,没法用in
1