手把手带你python入门
前言:受一位初学python的朋友邀请,特写此文。来帮助各位没有编程基础的朋友快速入门python。
1. python可以干什么?
python作为现在特别流行的一门编程语言,它可以做什么呢?
- 网络数据采集
- 爬取某电视剧的弹幕
- 爬取小说
- 数据分析
- excel文件数据处理,代替vba
- 图像处理
- 机器学习,深度学习,神经网络等
- Web 开发
- Django开发Web服务
- window窗体应用
- 上位机开发
- 游戏开发
上述清单中如有想了解的,可以留言。有空给大家继续更新。
2. python入门学习网址推荐
3. 快速入门都要学些什么?
还未安装python开发环境的朋友请先移步菜鸟教程-python3环境搭建.,完成python3的安装和环境变量的配置。 对于零基础的小伙伴来说,或许都想知道如何入门要学些什么?什么时候自己才能写出一段具有完整功能的程序。 下面所写的内容仅是一个概述,给小白一个指导参考。具体学习建议大家参考学习网站或教学视频,也可以买本书学习。
(1)python基础语法认知
我的第一个python程序
下面手把手教大家写一个python程序。有基础的小伙伴可以跳过。
- 方法一: 按win+R 打开cmd,在cmd输入python按回车键。 输入后会出现python的安装版本等信息,如果提示“xxx不是内部或外部命令,也不是可运行的程序”说明没有安装python或者未配置path环境变量。解决方法请向上看。 然后输入print("Hello World!"),该语句是在控制台打印 Hello World! 这句话。 我们之后的代码练习可以用上述方法。但是有人问我了,我想保存我这次写的代码,下次接着用。那么请看方法二。
- 方法二: 我们先新建一个txt格式的文本文档,在文本文档第一行写入print("Hello World!"),然后将文件扩展名改为.py,这样就写好了一个python文件了。该文件是可以直接运行的,但是运行结束后会自动关闭窗口,可以在代码最后加input("\n\n按下 enter 键后退出。"),保持窗口不关闭。
print ("Hello World!")
input("\n\n按下 enter 键后退出。")
python的编写规范要求
python使用缩进来表示代码块,同一个代码块的语句必须包含相同的缩进空格数。此部分在大家看多了代码自然就会理解。不过这里建议大家选一款好用的IDE来辅助大家,可以规范代码、提示书写错误。 python使用 # 作为注释符,多行注释可以用多个 # 号,或使用 ‘’’ 和 “”",建议大家后期写代码时多写备注。
# 注释符(这是一条注释,代码运行时不生效)
'''
这是一条注释
这是二条注释
'''
"""
这是三条注释
"""
给大家推荐个好用的IDE
1 python自带的IDLE
这个IDE我个人感觉就像是一个可以运行py文件的高级记事本。
名叫IDLE的文件就是了。在它的控制台可以直接写写python语句,也可以点击New File新建一个py文件。
在文件中写好后可以点击 run > run module 直接运行该文件。
这个IDE我很少用,但它用起来比较简单,而且不需额外安装、配置环境。建议初学者可以拿来入门。大家感兴趣可以自己研究一下。
2 PyCharm
较为主流的python开发IDE,用的人比较多。具备一般 Python IDE 的功能,比如:调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制等。 另外,PyCharm 还提供了一些很好的功能用于 Django 开发,准备拿python做Web开发的小伙伴可以好好了解下。PyCharm 官方下载地址 官方提供社区免费版
3 VS code
简单好用的多功能IDE,也是博主正在用的一款,应为经常写网页、python等多种编程语言,所以想着用着一个IDE一次都搞定。 VS code是个轻量级IDE,安装完成后所有文件都很小,也可以安装各种插件来辅助我们编程,也具备调试、语法高亮、代码跳转、智能提示等功能。VS code 官方下载地址 这个软件也是免费使用
(2)了解数据类型
Python3 中有六个标准的数据类型:
- Number(数字) Python3 支持 int、float、bool、complex(复数)
# python 可以用下面方法依次给 a b c d 依次赋值,等号前后一一对应关系
a, b, c, d = 20, 5.5, True, 4+3j
# type()可以获取括号内参数的数据类型
print(type(a), type(b), type(c), type(d))
- String(字符串) Python中的字符串用单引号 ’ 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符
a = "Hello World!"
a # 该语句也会在控制台打印 a 的值,效果和 print() 相同
字符串操作十分常见,比如:字符串截取、拼接、正则表达匹配、格式化、json字符串转换,这些之后会单独写一篇来给大家总结一下。
- List(列表) 博主感觉List和字典是最常用的两种数据类型。 列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
- List的定义、截取、拼接
list = [ 'abcd', 786 , 2.23, 'runoob', 70.2 ]
tinylist = [123, 'runoob']
print (list) # 输出完整列表
print (list[0]) # 输出列表第一个元素
print (list[1:3]) # 从第二个开始输出到第三个元素
print (list[2:]) # 输出从第三个元素开始的所有元素
print (tinylist * 2) # 输出两次列表
print (list + tinylist) # 连接列表
List(列表)元素修改
>>> a = [1, 2, 3, 4, 5, 6]
>>> a[0] = 9
>>> a[2:5] = [13, 14, 15]
>>> a
[9, 2, 13, 14, 15, 6]
>>> a[2:5] = [] # 将对应的元素值设置为 []
>>> a
[9, 2, 6]
List 的常用内置方法
a = [] # 创建空列表 a
a.append(1) # 给 a 添加元素1
a.append([2,c]) # 给 a 添加列表[2,c]
print(a)
b = a.pop(0) # 从a中取出索引为 0 的元素赋值给 b ,该操作会删除 a 中索引为 0 的元素
print(b)
print(a)
输出结果: [1, [2, c]] 1 [[2, c]] 在上述例子中,我们将列表作为了另一列表的元素。同理,列表的元素也可以为元组、字典等类型的数据List详解专栏
- Tuple(元组) 元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。 元组的操作、特性和列表极像,只是里面的元素不可以修改。
tuple = ( 'abcd', 786 , 2.23, 'runoob', 70.2 )
tinytuple = (123, 'runoob')
print (tuple) # 输出完整元组
print (tuple[0]) # 输出元组的第一个元素
print (tuple[1:3]) # 输出从第二个元素开始到第三个元素
print (tuple[2:]) # 输出从第三个元素开始的所有元素
print (tinytuple * 2) # 输出两次元组
print (tuple + tinytuple) # 连接元组
- Set(集合) 集合用的极少,博主基本不怎么用。感兴趣的小伙伴可以自己查资料学习。
- Dictionary(字典) 字典(dictionary)是Python中另一个非常有用的内置数据类型。 列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。 字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。 键(key)必须使用不可变类型。 在同一个字典中,键(key)必须是唯一的。
如果我们理解列表是元素按照创建或添加的词语排好队,我们依据元素的序号来确定元素身份。而字典则是无序的,元素不需要排队了,因为我们给它们起了一个唯一辨识的名字(key),我们可以通过点名的方式来找到元素。
dict = {}
dict['one'] = "1 - 菜鸟教程"
dict[2] = "2 - 菜鸟工具"
tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'}
print (dict['one']) # 输出键为 'one' 的值
print (dict[2]) # 输出键为 2 的值
print (tinydict) # 输出完整的字典
print (tinydict.keys()) # 输出所有键
print (tinydict.values()) # 输出所有值
字典常用内置方法在下面这篇文中有详细介绍 这篇文借来用用,大家可以参考学习下 别人写的字典操作详解
- Python常用的数据类型转换 为什么要转换数据类型? 我们经常需要数据之间比较或者运算。而有些不同类型的数据运算比较会出错,所以我们需要先转换为相同类型,然后再做运算。 常用到的转换有:number和string之间相互转换,这个方法已经在下表描述的很详细。 列表和字典转换:请看专栏
函数 | 描述 |
int(x [,base]) | 将x转换为一个整数,x可以为float或string等类型,浮点型在转换为整型会丢失小数点后内容(舍去法转换),可以将"1"转换为 1 |
float(x) | 将x转换到一个浮点数,x可以为int或string,可以将"1.2"转换为1.2 |
complex(real [,imag]) | 创建一个复数 |
str(x) | 将对象 x 转换为字符串,x可以为Number类型 |
repr(x) | 将对象 x 转换为表达式字符串 |
eval(str) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
tuple(s) | 将序列 s 转换为一个元组 |
list(s) | 将序列 s 转换为一个列表 |
set(s) | 转换为可变集合 |
dict(d) | 创建一个字典。d 必须是一个 (key, value)元组序列 |
frozenset(s) | 转换为不可变集合 |
chr(x) | 将一个整数转换为一个字符 |
ord(x) | 将一个字符转换为它的整数值 |
hex(x) | 将一个整数转换为一个十六进制字符串 |
oct(x) | 将一个整数转换为一个八进制字符串 |
下面贴出Number 和 string 之间的转换例子
(3)运算符
这部分较为简单,就好比数学加减乘除,所以不多做赘述,大家在控制台输入代码试验便知。
- Python算术运算符
5 + 4 # 加法
4.3 - 2 # 减法
3 * 7 # 乘法
2 / 4 # 除法,得到一个浮点数
2 // 4 # 除法,得到一个整数
17 % 3 # 取余
2 ** 5 # 乘方
- Python赋值运算符
a = 21
b = 10
c = 0
c = a + b # 将 a + b 的运算结果赋值为 c
c += a # 效于 c = c + a
c *= a # 等效于 c = c * a
c /= a # 等效于 c = c / a
c %= a # 等效于 c = c % a
c **= a # 等效于 c = c ** a
c //= a # 等效于 c = c // a
- Python比较运算符
a = 21
b = 10
c = 0
if ( a == b ): # 等于判断
print ("1 - a 等于 b")
else:
print ("1 - a 不等于 b")
if ( a != b ): # 不等于判断
print ("2 - a 不等于 b")
else:
print ("2 - a 等于 b")
if ( a < b ): # 小于判断
print ("3 - a 小于 b")
else:
print ("3 - a 大于等于 b")
if ( a > b ): # 大于判断
print ("4 - a 大于 b")
else:
print ("4 - a 小于等于 b")
- Python位运算符 该部分不常用到。主要实现二进制数的与、或、非、异或、左移、右移。
- Python逻辑运算符 逻辑运算符也较为常用,可以理解为变量间的与或非。在看下表前,需要先明确一个原则,即 a的值小于等于0则相当于false,在逻辑运算时效果同a = false,同理a的值大于0,则相当于true。
运算符 | 逻辑表达式 | 描述 | 实例(a=20,b=10) |
and | x and y | 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值 | (a and b) 返回 20 |
or | x or y | 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值 | (a or b) 返回 10 |
not | not x | 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True | not(a and b) 返回 False |
(4)数据类型
(5)逻辑语言
(6)函数
(7)引用模块
(8)面向对象
(9)常用内置函数
type("string") # 获取数据类型
isinstance(111, int) # 判断数类型是否为 int
del var_a, var_b # 删除单个或多个对象
4. 提高部分
(1)选择一个好用的IDE
(2)正则表达
(3)File(文件) 方法
(4)OS方法