鱼C论坛

 找回密码
 立即注册
查看: 853|回复: 6

Python零基础25讲通讯录程序的一个小问题

[复制链接]
发表于 2018-12-6 20:20:06 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 小北贝蓓蓓 于 2018-12-6 20:20 编辑

为什么必须有那个int,没有的话,后面执行程序我输入的只要是1,2,3,4中的数字(没有乱输入)就应该可以正常执行呀?为什么,不理解

while 1:
    temp=int(input('请输入你的选择:'))      
    if temp==1:
        name=input('请输入要查询的联系人:')
        if name in contact.keys():
            print(contact[name])
        else:
            print('该联系人不在通讯录中')
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-12-6 20:26:08 | 显示全部楼层
你要和1判断
1是int型
input得到的结果是字符串,不能比较不同类型
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-6 20:54:24 | 显示全部楼层
其实楼主你这样的问题我也遇见过,具体的解释是这样的:
首先input()输入的东西默认是字符型的,
而我们再看看你下面进行的比较是temp==1
这儿可以确定你进行的是两个数字型(int)的比较判断
所以你的情况是 “1”(字符)== 1(int)所以会出现无法比较的报错
具体的解决方法有几种:1.就是将输入的强制转换成int型;2.或者在判断时这样 temp==‘1’
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-6 21:36:31 | 显示全部楼层
塔利班 发表于 2018-12-6 20:26
你要和1判断
1是int型
input得到的结果是字符串,不能比较不同类型

OK,懂了谢谢哈
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-6 21:37:10 | 显示全部楼层
前路 发表于 2018-12-6 20:54
其实楼主你这样的问题我也遇见过,具体的解释是这样的:
首先input()输入的东西默认是字符型的,
而我 ...

懂了懂了,原来是默认字符型,谢谢你
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-6 23:34:52 | 显示全部楼层
小北贝蓓蓓 发表于 2018-12-6 21:37
懂了懂了,原来是默认字符型,谢谢你

很高兴能帮助到你!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-7 00:54:17 | 显示全部楼层
  1. while 1:
  2.     temp=(input('请输入你的选择:')
  3.     if temp==“1”:   #不加int,这边的1改成字符串类型,加int就整数,input函数默认获取都是字符串类型的数据。
  4.         name=input('请输入要查询的联系人:')
  5.         if name in contact.keys():
  6.             print(contact[name])
  7.         else:
  8.             print('该联系人不在通讯录中')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-12 01:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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