鱼C论坛

 找回密码
 立即注册
查看: 2444|回复: 13

[已解决]求问错误原因

[复制链接]
发表于 2021-6-4 12:08:59 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 fc5igm 于 2021-6-4 12:13 编辑
  1. >>> def huiwen(a):
  2.         print(a)
  3.         x=list(str(a))
  4.         x1=x.copy()
  5.         x1.reverse()
  6.         if x==x1:
  7.                 print('是回文联')
  8.         else:
  9.                 print('不是回文联')

  10.                
  11. >>> huiwen(123)
  12. 123
  13. 不是回文联
  14. >>> huiwen(海上)
  15. Traceback (most recent call last):
  16.   File "<pyshell#947>", line 1, in <module>
  17.     huiwen(海上)
  18. NameError: name '海上' is not defined
复制代码

为什么整数就可以被成功定义,而字符串就不行?如果要想让字符串可以成功运行,应该怎么修改?
看起来貌似是字符串被默认当成了变量对待。有没有什么办法可以让他们被默认当做字符串而不是变量?
最佳答案
2021-6-4 13:29:17


海上 需要加引号才是字符串,若不加引号中文或字母是指变量对象

变量都需要先定义才能使用 所以导致报错
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-6-4 12:32:55 From FishC Mobile | 显示全部楼层
huiwen("海上")
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-4 12:33:38 From FishC Mobile | 显示全部楼层
字符串要加引号的,否则认为是一个变量
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-4 12:38:22 | 显示全部楼层
wp231957 发表于 2021-6-4 12:33
字符串要加引号的,否则认为是一个变量
看起来貌似是字符串被默认当成了变量对待。有没有什么办法可以让他们被默认当做字符串而不是变量?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-4 13:01:21 From FishC Mobile | 显示全部楼层
fc5igm 发表于 2021-6-4 12:38

三楼不是说了吗,要加引号,这句话理解不了吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2021-6-4 13:29:17 | 显示全部楼层    本楼为最佳答案   


海上 需要加引号才是字符串,若不加引号中文或字母是指变量对象

变量都需要先定义才能使用 所以导致报错
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-4 14:14:46 | 显示全部楼层
没有引号的非数字开头文字,会被python认为是变量名
没有引号的整数会被python认为是整型
没有引号的小数会被python认为是浮点数

加了引号之后,才是字符串

a 与 'a'是不同的
a 是变量名, 'a'是字符串
上海与'上海'是不同的
上海是变量名,'上海'是字符串
1 与'1'是不同的
1是整型,'1'是字符串
...
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-4 16:17:12 | 显示全部楼层
逃兵 发表于 2021-6-4 14:14
没有引号的非数字开头文字,会被python认为是变量名
没有引号的整数会被python认为是整型
没有引号的小数 ...

所以没有办法让python默认函数括号内的值为字符串么?
往函数中添加input函数是否可行呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-4 16:40:48 | 显示全部楼层
fc5igm 发表于 2021-6-4 16:17
所以没有办法让python默认函数括号内的值为字符串么?
往函数中添加input函数是否可行呢?

可以的。huiwen(input()),因为input返回的就是字符串
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-4 16:49:50 | 显示全部楼层
灰晨 发表于 2021-6-4 16:40
可以的。huiwen(input()),因为input返回的就是字符串

  1. >>> huiwen(input(aaa))
  2. Traceback (most recent call last):
  3.   File "<pyshell#1126>", line 1, in <module>
  4.     huiwen(input(aaa))
  5. NameError: name 'aaa' is not defined
复制代码

貌似这么使用是不可行的?好像直接把'aaa'这个字符串当作变量了?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-4 16:54:25 | 显示全部楼层
本帖最后由 Twilight6 于 2021-6-4 16:55 编辑
fc5igm 发表于 2021-6-4 16:49
貌似这么使用是不可行的?好像直接把'aaa'这个字符串当作变量了?



... 你 aaa 也需要引号

在 Python 中,没引号的 字母、汉字,若没有提前定义,那么就属于变量范畴

就需要提前赋值,而字符串带引号,就像列表带 [] ,字典、集合带 {}

这是 Python 的语法要求,你必须遵守

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-4 17:00:55 | 显示全部楼层
。。。。input括号里的内容跟print差不多的,用来打印提醒内容的,你运行之后输入的内容才不需要引号
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-4 17:05:58 | 显示全部楼层
灰晨 发表于 2021-6-4 16:40
可以的。huiwen(input()),因为input返回的就是字符串
  1. >>> huiwen('aaa')
  2. aaa
  3. 是回文联
  4. >>> huiwen(input(aaa))
  5. Traceback (most recent call last):
  6.   File "<pyshell#1126>", line 1, in <module>
  7.     huiwen(input(aaa))
  8. NameError: name 'aaa' is not defined
  9. >>> huiwen(input('aaa'))
  10. aaa

  11. 是回文联
  12. >>> huiwen(input('aaa'))
  13. aaa

  14. 是回文联
  15. >>> huiwen(input('aaa'))
  16. aaa123
  17. 123
  18. 不是回文联
  19. >>> huiwen(input('aaa'))
  20. aaaaaa
  21. aaa
  22. 是回文联
复制代码

比较有意思,貌似是先执行了第二行的print指令,然后又跳回开头执行了input,再继续执行下面的。不同于一般函数按照1、2、3、4、5、6...的顺序执行,加了input反而变成了2、1、2、3、4、5、6...的顺序
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-4 17:17:59 | 显示全部楼层
顺序:
1.huiwen(input('aaa'))
2.需要先得到input('aaa')
3.打印input括号里的内容,这里是aaa
4.手动输入你想输入的值,比如bbb
5.返回字符串,huiwen(‘bbb’)
6.开始进入函数
7.print(a)
8.判断是否是回文联
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-23 02:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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