鱼C论坛

 找回密码
 立即注册
查看: 1764|回复: 10

[已解决]Python将其他类型转化为字符串失败的原因是什么?

[复制链接]
发表于 2020-7-22 20:25:18 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 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的页面上
其中一个可以运行,另外一个就会报错呢?
最佳答案
2020-7-22 20:44:38
Killiam 发表于 2020-7-22 20:43
诶 好像可以了,但是是为什么呀?
是不是我前面运行的时候用了 str当做变量名了?
str = '132'这样


你重新赋值了 str 导致 str 函数被你赋值的字符串所覆盖,失去了原有的 str 函数功能,所以导致你使用 str 函数时候报错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-22 20:32:23 | 显示全部楼层
本帖最后由 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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-22 20:32:46 | 显示全部楼层

因为你缩进错了吧,你重新复制去运行就好了:
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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-22 20:38:44 | 显示全部楼层
wuqramy 发表于 2020-7-22 20:32
将z换成其他变量名,不然会冲突
试试
要么就是缩进错了,少了一个空格



并不会冲突,一个大写的Z一个小写的z

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-22 20:39:33 | 显示全部楼层
Twilight6 发表于 2020-7-22 20:38
并不会冲突,一个大写的Z一个小写的z

可是报错应该是这个的问题呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-22 20:40:36 | 显示全部楼层
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出问题了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-22 20:41:13 | 显示全部楼层
wuqramy 发表于 2020-7-22 20:39
可是报错应该是这个的问题呀


出现 'str' object is not callable 这种报错,一般是因为代码中把 str 拿去赋值了,和 z 变量名不会扯上关系的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-22 20:41:57 | 显示全部楼层
Killiam 发表于 2020-7-22 20:40
z=10
print(type(z))
B=str(z)


你先输入 del str

然后再次运行代码试试看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-22 20:43:29 | 显示全部楼层
Twilight6 发表于 2020-7-22 20:41
出现 'str' object is not callable 这种报错,一般是因为代码中把 str 拿去赋值了,和 z 变量名不会扯 ...

嗯嗯
谢谢指教
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-22 20:43:56 | 显示全部楼层
Twilight6 发表于 2020-7-22 20:41
你先输入 del str

然后再次运行代码试试看

诶 好像可以了,但是是为什么呀?
是不是我前面运行的时候用了 str当做变量名了?
str = '132'这样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-22 20:44:38 | 显示全部楼层    本楼为最佳答案   
Killiam 发表于 2020-7-22 20:43
诶 好像可以了,但是是为什么呀?
是不是我前面运行的时候用了 str当做变量名了?
str = '132'这样


你重新赋值了 str 导致 str 函数被你赋值的字符串所覆盖,失去了原有的 str 函数功能,所以导致你使用 str 函数时候报错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-19 20:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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