python list转str_Python坑又来了

2fc7dea0f08409b6ab8dcfadf6b6c305.png

Python坑又来了

今天码哥为大家整理了平常被提问频率较高的一些问题

1.我该下载哪个 Python 版本?

去官网 http://python.org 下载最新版本即可,无需严格按照教程里的小版本。

如果官网上的最新版本按钮没有替你自动下载,可从列表中选择 executable installer。如果你确信自己的系统是 64 位的,可以选 x86-64,否则选 x86 也没有问题。

466b11cc92535d81ec9f019cd28211ad.png

我刚发现现在官网已经不再默认放置 2.7 版本的下载按钮了。所以关于 2 还是 3 的老问题也别纠结了,顺应潮流装 3 吧。已经用了 2 的同学也不用担心,从语法上来说,真的没有什么差别,学会任何一个版本后都可以秒转。

2.我在 Python 里为什么不能换行?

0597a1d72f7796148531049e17531f62.png

这个界面叫做 python shell,不是开发写代码的地方,每输入一行它都会自动执行并输出结果。所以要写代码,通过窗口上方菜单栏的 File - New File(或 New Window)创建一个新窗口,在里面写代码。

类似的问题还有,为什么我的代码里没有输出,上面说了,python shell 会自动输出,而在代码中,你需要 print

3.程序为什么到输入的地方就不动了?

2b7509bdb8b56b2d0a9ca50fbf924d07.png

可能有人会说,这也算问题?但确实有相当多的人在这一步会产生误解:以为 input 后面括号里的内容就是“用户输入”。

这里要明确:input 获取的是“用户”输入,是程序运行时才得到的数据,所以不是开发者在代码里预先写好的。input 括号里的文字,只是用来作为输入前的“提示语”。真正的输入,是要程序执行后,在控制台里输入,按回车结束

533f8ee1bb6e953ff18b820d9d568c01.png

4.猜数字输入后报错

报错提示

TypeError: unorderable types: str() < int()

ce8fcf2d824ebad77f2cd5f9433af776.png

py3 的 input,不管你输入什么内容,都会被当做字符串来处理。而字符串是不能跟数字之间比大小的。所以需要手动转换一下:
answer = int(input())

py2 也会有类似的问题(发生在 raw_input),而且更坑的是用 str 和 int 比大小并不会报错,而是返回一个并不是你预想的结果,这个需要额外注意。

5.print 时报错

报错提示

SyntaxError: Missing parentheses in call to 'print'

6ec35480f8ac02404d8dcf92c560280f.png

这是 Python 版本 3 和 2 的“重大”差异之一:print 要把后面输出的内容加上括号。后面学到函数,你就理解为什么要这样了:print 也是一个函数,参数就是输出的内容。

类似的一个问题是:

a625338efd2622ea4bc933fd1d995e06.png

会有人觉得我这里不是加了括号了吗,为什么还不行?这个式子在程序中的执行是:1. 输出 'num is %s',2. 把 print 的返回值做 % 11 操作。但 print 函数没有返回值,也就是 None,所以就报错了。应该用括号把要输出的所有内容外层括起来。

6.用 randint 产生随机数时报错

报错提示

AttributeError: module 'random' has no attribute 'randint'

78cd16cb450ed8a8cd87b624cf7e263c.png

这个情况如果发生了,你可能很难找到问题所在,通过网上搜索也不行。原因是你的代码用了系统模块一样的名字:random。类似的,如果你给自己的代码取名 math.py、list.py、str.py 等,或者变量名用 sum、time、str、list 等,都有可能因命名冲突带来意想不到的 bug。所以,远离系统保留字。好的编辑器会给你高亮提示出来。如果你自己拿不准,取名时尽量用合成词,比如 my_random 之类。

码哥要提醒的就是这些啦,希望小伙伴们多多注意

END

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值