Python将其他类型转化为字符串失败的原因是什么?
本帖最后由 Killiam 于 2020-7-22 20:28 编辑代码:
print('----------十进制转为二进制-----------')
def TWEO(x):
print('你输入的数字为:',x)
s =''
y = 1
while y!=0:
z = x % 2 #z为每次的余数
Z=str(z) #字符串相加只能同类型,转为str
s = s+Z #把原s标签贴到新的字符串上
y = x// 2 #y为每次的商
x = y #新x为这一次的商
print(''.join(reversed(s)))#reversed(字符串)不能直接输出
print(s[::-1]) # s[开始:结尾:步长],步长为负数倒着数
TWEO(65)
问题是标红的这一行,显示'str' object is not callable
为什么我同样的代码在两个不同的Jupyter Notebook的页面上
其中一个可以运行,另外一个就会报错呢? 本帖最后由 wuqramy 于 2020-7-22 20:35 编辑
将z换成其他变量名,不然会冲突
试试
要么就是缩进错了,少了一个空格
print('----------十进制转为二进制-----------')
def TWEO(x):
print('你输入的数字为:',x)
s = ''
y = 1
while y!=0:
z = x % 2 #z为每次的余数
w = str(z) #字符串相加只能同类型,转为str
s = s+w #把原s标签贴到新的字符串上
y = x// 2 #y为每次的商
x = y #新x为这一次的商
print(''.join(reversed(s)))#reversed(字符串)不能直接输出
print(s[::-1]) # s[开始:结尾:步长],步长为负数倒着数
TWEO(65)
纯缩进修改代码(也可以试试):
print('----------十进制转为二进制-----------')
def TWEO(x):
print('你输入的数字为:',x)
s =''
y = 1
while y!=0:
z = x % 2 #z为每次的余数
Z=str(z) #字符串相加只能同类型,转为str
s = s+Z #把原s标签贴到新的字符串上
y = x// 2 #y为每次的商
x = y #新x为这一次的商
print(''.join(reversed(s)))#reversed(字符串)不能直接输出
print(s[::-1]) # s[开始:结尾:步长],步长为负数倒着数
TWEO(65)
因为你缩进错了吧,你重新复制去运行就好了:
print('----------十进制转为二进制-----------')
def TWEO(x):
print('你输入的数字为:',x)
s =''
y = 1
while y!=0:
z = x % 2 #z为每次的余数
Z=str(z) #字符串相加只能同类型,转为str
s = s+Z #把原s标签贴到新的字符串上
y = x// 2 #y为每次的商
x = y #新x为这一次的商
print(''.join(reversed(s)))#reversed(字符串)不能直接输出
print(s[::-1]) # s[开始:结尾:步长],步长为负数倒着数
TWEO(65) wuqramy 发表于 2020-7-22 20:32
将z换成其他变量名,不然会冲突
试试
要么就是缩进错了,少了一个空格
并不会冲突,一个大写的Z一个小写的z
Twilight6 发表于 2020-7-22 20:38
并不会冲突,一个大写的Z一个小写的z
可是报错应该是这个的问题呀 z=10
print(type(z))
B=str(z)
print(Z)
<class 'int'>
-----------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-112-dfff27038eb8> in <module>
1 z=10
2 print(type(z))
----> 3 B=str(z)
4 print(Z)
TypeError: 'str' object is not callable
这个操作也不行诶,是不是这个notebook出问题了? wuqramy 发表于 2020-7-22 20:39
可是报错应该是这个的问题呀
出现 'str' object is not callable 这种报错,一般是因为代码中把 str 拿去赋值了,和 z 变量名不会扯上关系的 Killiam 发表于 2020-7-22 20:40
z=10
print(type(z))
B=str(z)
你先输入 del str
然后再次运行代码试试看 Twilight6 发表于 2020-7-22 20:41
出现 'str' object is not callable 这种报错,一般是因为代码中把 str 拿去赋值了,和 z 变量名不会扯 ...
嗯嗯
谢谢指教 Twilight6 发表于 2020-7-22 20:41
你先输入 del str
然后再次运行代码试试看
诶 好像可以了,但是是为什么呀?
是不是我前面运行的时候用了 str当做变量名了?
str = '132'这样 Killiam 发表于 2020-7-22 20:43
诶 好像可以了,但是是为什么呀?
是不是我前面运行的时候用了 str当做变量名了?
str = '132'这样
你重新赋值了 str 导致 str 函数被你赋值的字符串所覆盖,失去了原有的 str 函数功能,所以导致你使用 str 函数时候报错了
页:
[1]