python报错_Python错误解决

1、IndentationError:expected an indented block

1097347-20170929151518481-1241104572.png

原因:Python对缩进非常敏感

解决:在出现此问题的哪一行进行缩进就好,注意tab不能与空格混用,有冒号的下一句一般要缩进

1097347-20170929151820934-644881681.png

2、TypeError: unorderable types: str() >= int()

1097347-20170929151021903-559241400.png

原因:input返回的是字符串,所以输入数字返回的也是字符串

解决:强制类型转换,int(input())

1097347-20170929151120590-1423001684.png

3、can't assign to function call

1097347-20171022173941052-175125700.png

原因:圆括号()表示函数调用,方括号[]表示列表值的引用

解决:改为[]

def normalize(name):

l=list(name)

l[0]=l[0].upper()

for i in range(1,len(name)):

l[i]=l[i].lower()

l=''.join(l)

return l

l1=['adam','LISA','barT']

l2=list(map(normalize,l1))

print(l2)

4、descriptor 'lower' of 'str' object needs an argument

1097347-20171024220638316-843742123.png

原因:调用的是函数的返回值,但是调用函数时没有传参

解决:此处正确的是调用函数本身,即不带括号的函数调用

1097347-20171024220902348-754258390.png

5、ValueError: invalid literal for int() with base 2: '16'

1097347-20171106133555106-760117128.png

原因:int('16',2)意思是按照二进制将字符串‘16’转化成十进制,不是将16十进制转化成二进制,所以base=2时应该只有0,1,超出0,1范围就会报错

int('16',8) ——>1*8+6=14

int('16',16) ——>1*16+6=22

扩展:十进制转化为二进制:bin(x)

十进制转化为八进制:oct(x)

十进制转化为十六进制:hex(x)

返回值均为字符串,并且带有0b,0o,0x,可以采用replace去掉:bin(x).replace('0b','');可以再套一个int转化为十进制整数:int(int('1111',2))

1097347-20171106134952481-122378546.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值