1 安装python软件

1.1 Python环境搭建

如果是32位机器,安装python-3.6.3.exe

如果是64位机器,安装python-3.6.3-amd64.exe

具体步骤略

安装结束后,启动cmd命令行

在DOS提示符后输入python,如果进入python命令行,则说明python已经安装完成

编写简单的hello程序

print('hello')

如果要退出python命令行,按Ctrl+Z则可以退出,可以回到DOS命令行

1.2 执行简单的python程序

通过文件的方式执行python程序

创建一个后缀名为*.py的文件(比如是1_2hello.py)

print('hello')

要执行该程序,需要通过命令行进入文件所在的目录

cd /d 文件所在的目录

python hello.py

2 python基础语法

2.1 每行的最后一个符号

C/C++/Java中,每行的最后一个符号是分号

Python中每行的最后一个符号不需要加分号

2.2 数据类型

C:int、long、short、float、double、char、*、[ ]、struct、union、enum

Java:

基本类型:byte、short 、int、long、float、double、char、boolean

引用类型:[ ]、class、interface

Python:

基本类型:int(整型)、float(浮点型)、str(字符串)、bool(布尔型)、complex(复数)

复杂类型:list(列表)(中括号)、tuple(元组)(小括号)、set(集合)(大括号)、dict(字典)(大括号)

type()函数可以查看变量的数据类型

a = 2

print(a)

print(type(a)) # <class 'int'>

b = 3.14

print(b)

print(type(b)) # <class 'float'>

c = True # False

print(c)

print(type(c)) # <class 'bool'>

d = 'hello' # "world"

print(d)

print(type(d)) # <class 'str'>

e = 3-2j

print(e)

print(type(e)) # <class 'complex'>

f = [1, 3, 5, 7, 9]

print(f)

print(type(f)) # <class 'list'>

g = (1, 3, 5, 7, 9)

print(g)

print(type(g)) # <class 'tuple'>

h = {1, 3, 5, 7, 9}

print(h)

print(type(h)) # <class 'set'>

i = {

'name':'zhangsan',

'age':23,

'height':172.5,

'married':True,

'pets': ['wangcai', 'xiaoqiang', 'ruhua']

}

print(i)

print(type(i)) # <class 'dict'>

2.3 条件判断

if elif else

注意:if elif else后面没有大括号{},而是冒号(:),并且下一行需要缩进 (建议使用一个TAB键来缩进)区分是哪一层

a = 5

if a > 2:

print('a is big')

else:

print('a is small')

b = 0

if b > 0:

print('b is positive')

elif b == 0:

print('b is zero')

else:

print('b is negative')

Python中没有switch…case

2.4 循环

循环语句包括:for、while

Python中没有do…while

a = 3

while a < 8:

print(a)

a += 1 # python中没有a++

# 从1到10

# for (i = 0; i < 10; i++)

for i in range(10):

print(i)

# 从2到10

# for (i = 2; i < 10; i++)

for i in range(2, 10):

print(i)

# 从2到10 间隔为2

# for (i = 2; i < 10; i += 2)

for i in range(2, 10, 2):

print(i)

2.5 四则运算

print(7+3) # 10

print(7-3) # 4

print(7*3) # 21

print(7**3) # 幂

print(7/3) # 2.3333333333333335 浮点除

print(7//3) # 2 整除

print(7%3) # 1 求余数

2.6 注释

单行注释

C/C++/Java://

Python:#

多行注释

C/C++/Java:/* … */

Python:’’’ … ‘’’    “”” … “””

2.7 函数

在python中,需要通过关键字def关键字定义函数

def 函数名(函数参数):

函数体

函数返回值

def add(a = 4, b = 9):

result = a + b

return result

ret = add(3, 8) # a = 3, b = 8

print(ret) # 11

ret = add(3) # a = 3, b = 9

print(ret) # 12

ret = add() # a = 4, b = 9

print(ret) # 13

ret = add(b = 8) # a = 4, b = 8

print(ret) # 12

Python的函数可以有多个返回值

def div(a, b):

result1 = a // b

result2 = a % b

return result1, result2

ret1, ret2 = div(18, 4)

print('ret1 = ', ret1)

print('ret2 = ', ret2)

2.8 列表

list1 = [1, 2, 3, 5, 8, 13, 21]

print(list1)

# 通过如下方式访问列表中的元素

print(list1[2]) # 3

print(list1[0]) # 1

print(list1[-1]) # 21

print(list1[-3]) # 8

# 可以设置间隔

print(list1[1:3]) # [2, 3] 从第1个开始到第3个结束 包含第1个 不包含第3个

print(list1[1:-1]) # [2, 3, 5, 8, 13] 从第1个开始到倒数第1个结束 包含第1个 不包含倒数第1个

print(list1[1:]) # [2, 3, 5, 8, 13, 21] 从第1个开始到最后 包含第1个

print(list1[:3]) # [1, 2, 3] 从头开始到第3个结束 不包含第3个

print(list1[:]) # [1, 2, 3, 5, 8, 13, 21] 从头开始到最后

print(list1[1:6:2]) # [2, 5, 13] 从第1个开始到第6个结束 包含第1个 不包含第6个 间隔为2

print(list1[::2]) # [1, 3, 8, 21] 从头开始到最后结束 间隔为2

print(list1[::-1]) # 从后往前

可以增加、删除、修改列表中的元素

增加元素

# 增加元素

# append() 在列表后面增加元素

list1 = [1, 2, 3, 5, 8, 13, 21]

list1.append(34) # [1, 2, 3, 5, 8, 13, 21, 34]

print(list1)

# 尝试使用append()添加多个元素时会出现问题

list1 = [1, 2, 3, 5, 8, 13, 21]

#list1.append(34, 55) # append()只能接受一个参数

list1.append([34, 55]) # 尝试把34和55合在一个列表中作为一个参数

print(list1) # [1, 2, 3, 5, 8, 13, 21, [34, 55]]

print(len(list1)) # 8

# 使用extend()函数可以解决上面的问题

list1 = [1, 2, 3, 5, 8, 13, 21]

list1.extend([34, 55])

print(list1) # [1, 2, 3, 5, 8, 13, 21, 34, 55]

print(len(list1)) # 9

# 使用insert()往列表前面或中间插入元素

list1 = [1, 2, 3, 5, 8, 13, 21]

list1.insert(0, 9527)

print(list1) # [9527, 1, 2, 3, 5, 8, 13, 21]

删除元素

# remove() 根据值来删除元素

list1 = [1, 2, 3, 5, 8, 13, 21]

list1.remove(5)

print(list1) # [1, 2, 3, 8, 13, 21]

# pop() 根据索引来删除元素 有返回至

list1 = [1, 2, 3, 5, 8, 13, 21]

ret = list1.pop(5)

print(ret) # 13

print(list1) # [1, 2, 3, 5, 8, 21]

# del关键字 根据索引来删除元素 无返回值

list1 = [1, 2, 3, 5, 8, 13, 21]

del list1[5]

print(list1) # [1, 2, 3, 5, 8, 21]

排序

前提是列表中每个数的数据类型必须一致

如果列表中的数值是乱序的,可以通过sort()进行排序

# 排序

list1 = [13, 3, 21, 8, 5, 1, 2]

print(list1)

# 正向排序(从小到大)

list1.sort()

print(list1) # [1, 2, 3, 5, 8, 13, 21]

# 反向排序(从大到小)

list1.sort(reverse = True)

print(list1) # [21, 13, 8, 5, 3, 2, 1]

反向操作。把列表的序列颠倒

使用reverse()函数

# 反向操作

list1 = [13, 3, 21, 8, 5, 1, 2]

print(list1)

list1.reverse()

print(list1) # [2, 1, 5, 8, 21, 3, 13]

清空列表。使用clear()函数

# 清空列表

list1.clear()

print(list1)

思考下面的问题

list1 = [1, 2, 3]

list2 = list1

print(list1)

print(list2)

解决方法:浅拷贝

import copy

list1 = [1, 2, 3]

list2 = copy.copy(list1)

list2[2] = 4

print(list1) # [1, 2, 3]

print(list2) # [1, 2, 4]

思考下面的问题

list1 = []

list11 = [1,2,3]

list12 = [4,5,6]

list13 = [7,8,9]

list1.extend([list11, list12, list13])

list2 = copy.copy(list1)

list11[2] = 4

print(list1)

print(list2)

解决方法:深拷贝

list1 = []

list11 = [1,2,3]

list12 = [4,5,6]

list13 = [7,8,9]

list1.extend([list11, list12, list13])

list2 = copy.deepcopy(list1)

list11[2] = 4

print(list1)

print(list2)

2.9 元组

tuple1 = [1, 2, 3, 5, 8, 13, 21]

print(tuple1)

# 通过如下方式访问列表中的元素

print(tuple1[2]) # 3

print(tuple1[0]) # 1

print(tuple1[-1]) # 21

print(tuple1[-3]) # 8

# 可以设置间隔

print(tuple1[1:3]) # [2, 3] 从第1个开始到第3个结束 包含第1个 不包含第3个

print(tuple1[1:-1]) # [2, 3, 5, 8, 13] 从第1个开始到倒数第1个结束 包含第1个 不包含倒数第1个

print(tuple1[1:]) # [2, 3, 5, 8, 13, 21] 从第1个开始到最后 包含第1个

print(tuple1[:3]) # [1, 2, 3] 从头开始到第3个结束 不包含第3个

print(tuple1[:]) # [1, 2, 3, 5, 8, 13, 21] 从头开始到最后

print(tuple1[1:6:2]) # [2, 5, 13] 从第1个开始到第6个结束 包含第1个 不包含第6个 间隔为2

print(tuple1[::2]) # [1, 3, 8, 21] 从头开始到最后结束 间隔为2

print(tuple1[::-1]) # 从后往前

不能往tuple中增加元素

# tuple不能增加元素

tuple1 = (1, 2, 3, 5, 8, 13, 21)

tuple1.append(34)

不能从tuple中删除元素

# tuple不能删除元素

tuple1 = (1, 2, 3, 5, 8, 13, 21)

tuple1.remove(5)

不能修改tuple中的元素

# tuple不能修改其中的元素

tuple1 = (1, 2, 3, 5, 8, 13, 21)

tuple1[2] = 99

2.10 文件

通过open()函数打开一个文件,返回file对象。

通过file对象的close()方法关闭文件。

# 打开一个文件

# 参数1 文件所在的路径

#    绝对路径

#    相对路径

# 参数2 文件的打开方式 共12种

# r w a r+ w+ a+ rb wb ab rb+ wb+ ab+

f = open('tmp.txt', 'r')

# 对文件内容进行操作

# ....

f.close()

比如,读取文件的内容:

通过read()读取内容

f = open('tmp.txt', 'r')

# 对文件内容进行操作

#ret = f.read(5) # 读取5个字节

ret = f.read() # 读取全部内容

print(ret)

f.close()

逐行读取文件的内容

f = open('tmp.txt', 'r')

# 逐行读取文件的内容

while True:

ret = f.readline()

if not ret:

break

print(ret)

f.close()

把内容写入文件中

f = open('tmp2.txt', 'w')

# 往文件中写入内容

f.write('hello\n')

f.write('world')

f.close()

3 爬虫案例1:访问百度帖吧

假设我们要访问的帖吧是:柯南吧

留意头几页的URL地址:

https://tieba.baidu.com/f?kw=%E6%9F%AF%E5%8D%97&pn=0

https://tieba.baidu.com/f?kw=%E6%9F%AF%E5%8D%97&pn=50

https://tieba.baidu.com/f?kw=%E6%9F%AF%E5%8D%97&pn=100

https://tieba.baidu.com/f?kw=%E6%9F%AF%E5%8D%97&pn=150

其中,kw参数%E6%9F%AF%E5%8D%97可以通过站长工具http://tool.chinaz.com/tools/urlencode.aspx 进行url编码解码测试。

3.1 获取一页的html

创建文件3tieba.py

from urllib import request

# 加载一个页面

def loadPage(url):

# 发送请求

req = request.Request(url)

# 打开响应的对象

response = request.urlopen(req)

# 获取网页的内容

html = response.read()

# 对unicode编码进行解码

content = html.decode('utf-8')

return content

url = 'https://tieba.baidu.com/f?kw=%E6%9F%AF%E5%8D%97&pn=0'

content = loadPage(url)

print(content)

3.2 下载的内容保存到本地文件

# 把下载的内容保存到本地文件

def writePage(html, filename):

print('正在保存到:', filename)

f = open(filename, 'w', encoding='utf-8')

f.write(html)

f.close()

url = 'https://tieba.baidu.com/f?kw=%E6%9F%AF%E5%8D%97&pn=0'

content = loadPage(url)

filename = 'tieba.html'

writePage(content, filename)

3.3 设置起始页和终止页

指定从第几页开始,到第几页结束

# 设置起始页和终止页

def tiebaSpider(url, beginPage, endPage):

for page in range(beginPage, endPage + 1):

pn = (page - 1) * 50

fullurl = url + '&pn=' + str(pn)

content = loadPage(url)

filename = '第' + str(page) + '页.html'

writePage(content, filename)

url = 'https://tieba.baidu.com/f?kw=%E6%9F%AF%E5%8D%97'

tiebaSpider(url, 1, 4)

3.4 用户输入参数

from urllib import request, parse

if __name__ == '__main__':

kw = input('请输入要爬取的帖吧:')

beginPage = int(input('请输入起始页:')) # int() 字符串转整数

endPage = int(input('请输入终止页:'))

# 把输入的中文内容进行url编码

key = parse.urlencode({'kw':kw})

url = 'https://tieba.baidu.com/f?' + key

tiebaSpider(url, beginPage, endPage)

END

学习Python(一)相关推荐

  1. 如何零基础学习python语言_零基础如何入门Python语言?有哪些学习建议?

    众所周知,Python目前是最受欢迎的编程语言之一,尤其是对于零基础的初学者来说,Python语言更是十分的友好.因此,不少初学者常常会有这样一个共同的疑惑,零基础如何入门Python语言?本文就来给 ...

  2. 0基础学好python难不难_零基础学习Python难不难?Python有什么优势?

    原标题:零基础学习Python难不难?Python有什么优势? Python是一种计算机程序设计语言.首先,我们普及一下编程语言的基础知识.用任何编程语言来开发程序,都是为了让计算机干活,比如下载一个 ...

  3. python后端学什么框架_献给正在学习python的你, 10个最受欢迎的Python开源框架

    很多小伙伴在学习wen的时候说,有没有几个常用的框架,好多小伙伴都只说对了其中几个,只有少部分是说正确的,想要了解更多,欢迎大家订阅微信公众号:Python从程序猿到程序员,或者加4913.08659 ...

  4. 零基础学习Python需要注意的几个点,Python培训机构排名

    俗话说的好万事开头难,不管你做任何事情,开头的确很较难的,学Python编程也是如此,因此刚开始学Python编程的同学们,就要多借鉴过来人的经验,少走弯路,本文小编就为大家分享几个Python编程小 ...

  5. 什么样的人合适学习Python?

    什么样的人合适学习Python?近几年,关注Python技术的小伙伴越来越多,很多人都想知道Python培训好不好学?难不难学?哪些人适合学?来看看下面的详细介绍. Python培训分享:什么样的人合 ...

  6. 为什么学习Python数据分析

    为什么学习Python数据分析?这是很多人都比较关注的一个问题,Python编程语言近几年在互联网行业是非常火爆的,尤其是在人工智能这一领域,它会大大的提高我们的工作效率等等,具体来看看下面的详细介绍 ...

  7. 0基础学怎么学习python

    ​ Python相对于其他编程语言来说是比较简单的,非常适合零基础的小白学习,想要进入到互联网行业,可以优先选择学习Python,那么下面小编就来为大家详细的介绍一下0基础学怎么学习python? ​ ...

  8. 学习Python开发培训有用吗

    学习Python开发培训有用吗?这是目前很多人都比较关注的一个问题,Python语言在最近几年是广受IT互联网行业关注的, 下面我们就针对这问题来详细的分析一下. 学习Python开发培训有用吗?Py ...

  9. 学习Python往哪个方向发展好

    Python近几年在IT行业的发展前景是非常可观的,尤其是在人工智能领域这一块,吸引了很多人的关注,但不仅仅是人工智能领域,Python在很多其他地方也是非常有发展前景的,那么具体学习Python往那 ...

  10. 学习Python编程开发可以从事的岗位有哪些?

    Python编程技术在人工智能领域的发展有目共睹,很多人都想学习Python技术,而且从事Python开发,所从事的工作机会和工作岗位及工作内容可选择的余地很多,未来发展空间也很大.下面我们就来详细的 ...

最新文章

  1. 邻接表存储(链式前向星)
  2. HP-UX下查询函数是否为线程安全的方法
  3. php log在哪里看,PHP Log时时查看小工具
  4. Java获取yahoo天气预报
  5. Google搜索引擎的十大应用
  6. 代码检查规则:Python语言案例详解
  7. touchstart与click同时触发
  8. 渗透测试报告封面样本
  9. [Leedcode][JAVA][第983题][最低票价][动态规划]
  10. JS代码实例:实现随机加载不同的CSS样式
  11. 我用Python帮学校写了一款图书管理系统!教导员居然请我吃饭
  12. DTrace Tools
  13. java 中对hashmap进行排序
  14. Latex调节目录间距\tableofcontents
  15. 【Pycharm】主题背景颜色更改
  16. window.print()实现分页打印
  17. 到Visual Studio Code en 2020中的实际实现
  18. Web在线聊天室(2) --- 技术实现原理
  19. 小鸡手柄或其他手柄导致的电脑无法熄屏休眠问题
  20. 逐步回归matlab函数,Matlab逐步回归

热门文章

  1. vue如何使用原生js写动画效果_手摸手,带你用 vue 动画实现原生 app 切换效果,丝滑般的体验...
  2. transactionscope 中的异步 处理 异常_.NET Core中TransactionScope事务处理方法介绍及注意事项...
  3. 最新的SCI-HUB访问地址
  4. Ubuntu 18.04 固件的烧录方法
  5. 2.JS执行上下文和变量对象
  6. Machine Learning | (11) 回归性能评估与欠拟合、过拟合
  7. RDKit2018.03.3+Win10(64位):ImportError: DLL load failed: 找不到指定的模块。
  8. Scanpy(一)AnnData数据结构与一些API用法介绍
  9. python画图,使用matplotlib和seaborn来设置图形的字体大小,坐标轴的线宽,风格,取值范围
  10. 小程序 a标签_微慕WordPress小程序增强版V2.0新版上线