鱼C论坛

 找回密码
 立即注册
查看: 1973|回复: 9

[已解决]关于pytion教程25科通讯录的问题

[复制链接]
发表于 2018-2-7 20:28:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
自己根据题目写了一段代码,【可是运行时无法进入 if 语,输入1,2,3均显示感谢使用。
if语句单独使用时提示【SyntaxError: multiple statements found while compiling a single s】

代码如下
print('''---欢迎进入通讯录---
---1:查询联系人资料---
---2:插入新的联系人---
---3:删除已有联系人---
---4:退出通讯录---''')

txl = {}
txl["小甲鱼"] = "020-8897651"
n = input("请输入指令:")

if n == 1:
    xingming = input("请输入联系人姓名:")
    haoma = txl["xingming"]
    print("%s : "  % (xingming),haoma)

elif n == 2:
    xingming = input("请输入联系人姓名:")
    haoma = input("请输入联系人号码:")
    txl[xingming] = haoma

elif n == 3:
    xingming = input("请输入联系人姓名:")
    txl[xingming] = ""

else:
    print("---感谢使用---")
最佳答案
2018-2-7 20:46:22
input输入的是字符串,改为if n == "1":,下同。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-2-7 20:46:22 | 显示全部楼层    本楼为最佳答案   
input输入的是字符串,改为if n == "1":,下同。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-7 20:47:17 | 显示全部楼层
似乎是是不是因为【input()】返回的是str导致的。。。。“1”和1的类型不一样,导致不能进行if的条件判断。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-7 21:22:01 | 显示全部楼层
“1”和1一个是字符串一个是int
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-7 21:48:01 | 显示全部楼层
冬雪雪冬 发表于 2018-2-7 20:46
input输入的是字符串,改为if n == "1":,下同。

好的,明白了,谢谢,感觉这些东西边学边忘。。。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-7 21:49:08 | 显示全部楼层
哈,晒一下最终成果

print('''---欢迎进入通讯录---
---1:查询联系人资料---
---2:插入新的联系人---
---3:删除已有联系人---
---4:退出通讯录---''')

txl = {}
txl["小甲鱼"] = "020-8897651"
q = True
while q == True:
    temp = input("请输入指令:")
    n = int(temp) #返回的为字符串,需要用int()进行转换为整型。
    if n not in range(1,5):
        print("输入有误,请重新输入")

    elif n == 1:
        xingming = input("请输入联系人姓名:")
        haoma = txl[xingming]
        print("%s : "  % (xingming),haoma)

    elif n == 2:
        xingming = input("请输入联系人姓名:")
        if xingming in txl:
            print("已存在该联系人--- ","%s : " % xingming,txl[xingming])
            xiugai = input("是否要进行修改(YES/NO):")
            if xiugai == "YES":
                temp1 = input("请输入联系电话:")
                txl[xingming] = temp1
               
        else:
            haoma = input("请输入联系人号码:")
            txl[xingming] = haoma

    elif n == 3:
        xingming = input("请输入联系人姓名:")
        txl[xingming] = ""

    elif n == 4:
        print("---感谢使用---")
        q = False
   
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-7 21:53:20 | 显示全部楼层
冬雪雪冬 发表于 2018-2-7 20:46
input输入的是字符串,改为if n == "1":,下同。

还有一个问题,就是在【txl["小甲鱼"] = "020-8897651"】中,如果不加【" "】会报错,原因是说数字开头的0表示八进制,那如果不用【" "】还有什么其它的办法吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-7 21:57:01 | 显示全部楼层
瓜子仁 发表于 2018-2-7 21:53
还有一个问题,就是在【txl["小甲鱼"] = "020-8897651"】中,如果不加【" "】会报错,原因是说数字开头的 ...

这个只能是字符串,有0开头,中间又有-
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-7 22:04:22 | 显示全部楼层
冬雪雪冬 发表于 2018-2-7 21:57
这个只能是字符串,有0开头,中间又有-

似乎去掉【--】也不行,那如果是纯数字的话是否有其它方法?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-7 22:09:03 | 显示全部楼层
瓜子仁 发表于 2018-2-7 22:04
似乎去掉【--】也不行,那如果是纯数字的话是否有其它方法?

还是加上引号作为字符串吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-7 11:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表