Python基础——遇到问题汇总

Python基础——遇到问题汇总

本篇文章主要写在学习使用python3中遇到的一些问题。
————本人是python小白,如有错误的地方请各位大神指教。

1、print()函数

旧的print函数用法为print ‘Hello’,而新的print函数对此改成了print(‘Hello’)并且不再兼容之前版本。
如果在3.X版本上Python上使用旧的print语法,将出现“SyntaxError: invalid syntax”错误。

2、raw_input()与input()

Python3中用input()取代了raw_input(),当然这仅仅是重命名,使用上并没有不同;

3、比较符号,使用!=替换<>

4、repr函数

使用repr()函数替换“(注:反单引号,位于键盘1的左边一个键),将一个object转换为string,注意repr()与str()略有不同

5、exec()函数

exec用来执行存储在字符串或者文件中的Python语句,与JavaScript中的eval()函数类似,新的exec用法为exec(‘print(“Hello”)’)

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;
  5. 增加了支持甘特图的mermaid语法1 功能;
  6. 增加了 多屏幕编辑 Markdown文章功能;
  7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
  8. 增加了 检查列表 功能。

6. Windows下,"No module named ‘xlrd’ "的解决办法

  1. 问题描述
    windows10下,python代码中引用头文件
 import xlrd

出现下面错误

     "No module named 'xlrd'
  1. 原因
    python的xlrd库是第三方的,需要另外自行安装。

  2. 解决方案
    进入windows command 命令行,然后把目录切换到python的安装目录下的Script文件夹,运行 easy_inatall pip, 安装pip命令

利用pip命令,安装xlrd包

pip install xlrd

7. ImportError: No module named ‘urllib2’

今天试了一下一段简单的代码:

import urllib2
response = urllib2.urlopen("http://www.baidu.com")
print response.read()

运行后报错:

扫描二维码关注公众号,回复: 3863319 查看本文章
Traceback (most recent call last):
  File "D:/PycharmProjects/network_test/scrapy.py", line 1, in <module>
    import urllib2
ImportError: No module named 'urllib2'

自己电脑里装的是python 3.4里面,在3以后用urllib.request代替urllib2,所以改成这样:

import urllib.request
response = urllib.request.urlopen("http://www.baidu.com")
print(response.read())

8. 解决python3 AttributeError: ‘module’ object has no attribute ‘urlencode’

报错:

Traceback (most recent call last):
File "C:/Users/Window/Desktop/urllib2_test01.py", line 13, in <module>
data = urllib.urlencode(values)
AttributeError: 'module' object has no attribute 'urlencode'

解决:
是python 3版本,要用urllib.parse.urlencode(values)

9. python3.x执行post请求时报错“POST data should be bytes or an iterable of bytes…”的解决方法

使用python3.5.1执行post请求时,一直报错"POST data should be bytes or an iterable of bytes. It cannot be of type str.",仔细对照教程后也未发现编写方法没有问题。

最后通过交流发现需要加在urlencode语句后加encode(encoding=‘UTF8’)

eg:
params = urllib.parse.urlencode({'userid':'381fccbd776c4deb'}).encode(encoding='UTF8')

问题解决

10. 将列表中的每个元素转成float(Python2与Python3的区别)

#Python2
 for line in fr.readlines():
        curLine = line.strip().split('\t')
        fltLine = map(float, curLine)    # 将每个元素转成float类型
        dataMat.append(fltLine)
#Python3
 for line in fr.readlines():
        curLine = line.strip().split('\t')
        fltLine = list(map(float,curLine))# 将每个元素转成float类型
        dataMat.append(fltLine)

11. Python错误TypeError: write() argument must be str, not bytes

今天使用Python中的pickle存储的时候出现了以下错误:

TypeError: write() argument must be str, not bytes

网上搜索才发现原来是文件打开的方式有问题。

之前文件打开的语句是:

f=open("list.pkl","w+")

然后使用二进制方式打开就没有这个问题:

f=open("list_account.pkl","wb+")

产生问题的原因是因为pickle存储方式默认是二进制方式


  1. mermaid语法说明 ↩︎

猜你喜欢

转载自blog.csdn.net/weixin_43093289/article/details/83115632