求问错误原因
本帖最后由 fc5igm 于 2021-6-4 12:13 编辑>>> def huiwen(a):
print(a)
x=list(str(a))
x1=x.copy()
x1.reverse()
if x==x1:
print('是回文联')
else:
print('不是回文联')
>>> huiwen(123)
123
不是回文联
>>> huiwen(海上)
Traceback (most recent call last):
File "<pyshell#947>", line 1, in <module>
huiwen(海上)
NameError: name '海上' is not defined
为什么整数就可以被成功定义,而字符串就不行?如果要想让字符串可以成功运行,应该怎么修改?
看起来貌似是字符串被默认当成了变量对待。有没有什么办法可以让他们被默认当做字符串而不是变量? huiwen("海上") 字符串要加引号的,否则认为是一个变量 wp231957 发表于 2021-6-4 12:33
字符串要加引号的,否则认为是一个变量
看起来貌似是字符串被默认当成了变量对待。有没有什么办法可以让他们被默认当做字符串而不是变量?
fc5igm 发表于 2021-6-4 12:38
三楼不是说了吗,要加引号,这句话理解不了吗
海上 需要加引号才是字符串,若不加引号中文或字母是指变量对象
变量都需要先定义才能使用 所以导致报错 没有引号的非数字开头文字,会被python认为是变量名
没有引号的整数会被python认为是整型
没有引号的小数会被python认为是浮点数
加了引号之后,才是字符串
a 与 'a'是不同的
a 是变量名, 'a'是字符串
上海与'上海'是不同的
上海是变量名,'上海'是字符串
1 与'1'是不同的
1是整型,'1'是字符串
... 逃兵 发表于 2021-6-4 14:14
没有引号的非数字开头文字,会被python认为是变量名
没有引号的整数会被python认为是整型
没有引号的小数 ...
所以没有办法让python默认函数括号内的值为字符串么?
往函数中添加input函数是否可行呢? fc5igm 发表于 2021-6-4 16:17
所以没有办法让python默认函数括号内的值为字符串么?
往函数中添加input函数是否可行呢?
可以的。huiwen(input()),因为input返回的就是字符串 灰晨 发表于 2021-6-4 16:40
可以的。huiwen(input()),因为input返回的就是字符串
>>> huiwen(input(aaa))
Traceback (most recent call last):
File "<pyshell#1126>", line 1, in <module>
huiwen(input(aaa))
NameError: name 'aaa' is not defined
貌似这么使用是不可行的?好像直接把'aaa'这个字符串当作变量了? 本帖最后由 Twilight6 于 2021-6-4 16:55 编辑
fc5igm 发表于 2021-6-4 16:49
貌似这么使用是不可行的?好像直接把'aaa'这个字符串当作变量了?
... 你 aaa 也需要引号
在 Python 中,没引号的 字母、汉字,若没有提前定义,那么就属于变量范畴
就需要提前赋值,而字符串带引号,就像列表带 [] ,字典、集合带 {}
这是 Python 的语法要求,你必须遵守
。。。。input括号里的内容跟print差不多的,用来打印提醒内容的,你运行之后输入的内容才不需要引号 灰晨 发表于 2021-6-4 16:40
可以的。huiwen(input()),因为input返回的就是字符串
>>> huiwen('aaa')
aaa
是回文联
>>> huiwen(input(aaa))
Traceback (most recent call last):
File "<pyshell#1126>", line 1, in <module>
huiwen(input(aaa))
NameError: name 'aaa' is not defined
>>> huiwen(input('aaa'))
aaa
是回文联
>>> huiwen(input('aaa'))
aaa
是回文联
>>> huiwen(input('aaa'))
aaa123
123
不是回文联
>>> huiwen(input('aaa'))
aaaaaa
aaa
是回文联
比较有意思,貌似是先执行了第二行的print指令,然后又跳回开头执行了input,再继续执行下面的。不同于一般函数按照1、2、3、4、5、6...的顺序执行,加了input反而变成了2、1、2、3、4、5、6...的顺序 顺序:
1.huiwen(input('aaa'))
2.需要先得到input('aaa')
3.打印input括号里的内容,这里是aaa
4.手动输入你想输入的值,比如bbb
5.返回字符串,huiwen(‘bbb’)
6.开始进入函数
7.print(a)
8.判断是否是回文联
页:
[1]