学习Python3之一:基础
2018-07-28 15:18:01 39 举报
AI智能生成
Python3是一种高级编程语言,以其简洁易读的语法和强大的功能而受到广大程序员的喜爱。它支持多种编程范式,包括面向对象的、命令式、函数式和过程式编程。Python3的设计哲学强调代码的可读性和简洁性,尤其是使用空格缩进划分代码块,而不是使用大括号或者关键词。Python3拥有丰富的内置数据类型和标准库,支持文件处理、网络编程、数据库访问等众多功能。此外,Python3还具有跨平台的特性,可以在Windows、Linux、Mac等多种操作系统上运行。对于初学者来说,Python3是一个理想的入门语言,因为它的语法简单,易于理解,而且有大量的学习资源和社区支持。
作者其他创作
大纲/内容
1、简介
高级语言(相当高级),解释型语言,动态语言
TIOBE 2018.5 排名:第四(仅次于 Java、C、C++)
特点:优雅、明确、简单
优点:代码量少;跨平台;完善的基础代码库
缺点:运行速度慢(比C、Java慢);源码不能加密
应用领域
网站、后台服务:如Youtube
各种工具:爬虫抓取技术等
网游服务器端
案例:Youtube、Instgram、豆瓣、Google、Yahoo、NASA
版本:2.x、3.x,互不兼容
安装
http://www.python.org/
Mac:brew install python3
Windows:安装的时候勾上——Add python3.6 to Path
检验是否安装成功
Linux/Mac:命令行输入python3(或 python)
Windows:命令行输入python
命令行交互模式
提示符:>>>
退出:exit() 或 ctrl+D
解释器
CPython:C语言开发,使用最广泛(默认)
IPython:基于CPython,交互式解释器(推荐)
PyPy:采用JIT技术,动态编译,执行速度快,<font color="#c41230">比 CPython 快5倍</font>
Jython:在Java平台运行,将Python代码编译成Java字节码执行
IronPython:在.Net平台运行的解释器,将Python代码编译成.Net字节码执行
3、语法
<font color="#c41230">pass</font>
空语句,用来占位(若不用 pass,只留空,会报错)
逻辑运算符
and
or
not
比较运算符
==
!= 或 <>
>、<、>=、<=
<font color="#c41230">if</font>
<font color="#c41230">if</font> <条件判断1>:<br> <执行1><br><font color="#c41230">elif</font> <条件判断2>:<br> <执行2><br>elif <条件判断3>:<br> <执行3><br><font color="#c41230">else:</font><br> <执行4>
三元表达式
<b>value_true if condition else value_false</b><br>eg:"fat" if is_fat else "not fat"
循环
<font color="#c41230">for</font>
for x in ...:<br> pass<br><br># i 从0~4<br>for i in range(5):<br> pass<br>
<font color="#c41230">while</font>
while <条件判断>:<br> pass
<font color="#c41230"><b>break</b></font>:结束循环
<font color="#c41230"><b>continue</b></font>:跳过本次循环
若死循环,可用 ctrl+c退出
list、tuple
<font color="#c41230"><b>list</b></font>:有序集合(即数组)
# 定义<br>classmates = ['Michael', 'Bob', 'Tracy']<br># 长度<br><font color="#c41230">len</font>(classmates):3<br># 访问元素<br>classmates[0]:'Michael'<br>classmates[3]:报错'IndexError: list index out of range'<br>classmates[-1]:最后一个元素<br># 添加<br>classmates.<font color="#c41230">append</font>('Adam'):添加到末尾<br>classmates.<font color="#c41230">insert</font>(1, 'Jack'):插入指定位置1<br># 删除<br>classmates.<font color="#c41230">pop</font>():删除末尾元素<br>classmates.pop(1):删除指定位置1<br># 多维数组<br>s = ['python', 'java', ['asp', 'php'], 'scheme']:<font color="#c41230">t[2][1]</font>表示'php'<br>
<b><font color="#c41230">tuple</font></b>:元祖,不可变 list(初始化后不能改变)<br>
# 定义<br>t = (1, 2)<br>t = ():空元祖<br>t = (1,):只有1个元素的元祖,要和 t=(1)区别,所以要加,
<font color="#c41230">代码更安全,能用代替 list 的尽量用tuple</font>
dict、set
<b><font color="#c41230">dict</font></b>:字典,key-value 存储
使用 Hash 算法来存储 key<br>key 必须是不变对象(整数、字符串)<br>key 的存放顺序和放入顺序无关
优点:<br>极快的查找速度<br>缺点:<br>占用大量内存,内存浪费多
# 定义<br>d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}<br># 获取 value<br>d['Bob']:75<br>d.<font color="#c41230">get</font>('Bob', -1):若不存在,返回指定值-1<br># 删除<br>d.<font color="#c41230">pop</font>('Bob')<br># 判断是否存在<br>if 'Bob' in d:
<font color="#c41230"><b>set</b></font>:和 dict 类似,但不存储 value(只含 key)
# 定义<br>s = set([1, 2, 3]):使用 list 作为输入<br># 添加<br>s.<font color="#c41230">add</font>(4)<br>#删除<br>s.<font color="#c41230">remove</font>(4)<br># 交集、并集等<br>s1&s2<br>s1|s2<br>s1-s2:差集(项在s1中,但不在s2中)<br>s1^s2:对称差集(项在s1或s2中,但不会同时出现在二者中)
2、基础知识
编写
后缀名.py文件
执行:python test.py
直接执行
文件头:<br><font color="#c41230">#!/usr/bin/env python3<br># -*- coding: utf-8 -*-</font><br>
chmod +x .py
执行:test.py
采用缩进方式(不使用 分号;、大括号{ }),<font color="#c41230">使用4个空格的缩进</font>
注意复制、粘贴代码时缩进可能出错
语句以:结尾,下一行缩进视为代码块
#开头为注释
大小写敏感
输入输出
输出:print('hello', name)
格式化:%
%d:整数,<font color="#c41230">%2d--占2位整数,%02d--补0占2位</font><br>%f:浮点数,<font color="#c41230">%.2f--保留2位小数</font><br>%s:字符串<br>%x:十六进制
用法:'Hello, %s' % 'world'
%d:整数,<font color="#c41230">%2d--占2位整数,%02d--补0占2位</font><br>%f:浮点数,<font color="#c41230">%.2f--保留2位小数</font><br>%s:字符串<br>%x:十六进制
%%:转义表示%
输入:input()
eg:s = input('please input:')
数据类型、变量、常量
整数
1,-1010
0xff(16进制)
int('99'):整数转换
浮点数
3.14,1.23e9,3.28e-7(科学计数法)
浮点数运算可能有四舍五入的误差
浮点数超出一定范围就是 inf(无限大)
字符串
单引号:'abc'
双引号:"xyz"
单引号本身是一个字符,可用用双引号括起来:"i'm ok"
转义:'I\'m \"OK\"!'
不转义:r,例如:r'\\\t\\'
换行:'''
print('''line1<br>... line2<br>... line3''')
布尔值:True、False
非:not True、not False
空值:None,不同于0值、False
变量:a = 2,a = 'abc'
Python 是动态语言:变量类型不固定
常量:PI = 3.14,通常用大写字母表示常量
除法
普通除法:9 / 3 = 3.0(整数除法也是浮点数);10/3=3.3333333333333335
地板除(只取整数部分):10 // 3 = 3
取余:10 % 3 = 1
编码
不统一
ASCII 编码:127个字符(英文字母、数字、一些字符),1个字节
GB2312编码:中国制定
Shift_JIS:日文
Euc-kr:韩文
各国标准
统一
Unicode:通常用2个字节表示一个字符(使用生僻字,需要4个字节)
UTF-8(可变长):为了节省存储空间
英文字母:1个字节(完全和 ASCII 编码一致)
中文:3个字节
生僻字:4-6个字节
存为文件、服务器发送给浏览器:Uncode->UTF-8
读入内存:UTF-8->Unicode
Python
ord:获取字符的整数表示
ord('A'):65
ord('中'):20013
chr:将整数转换为字符
chr(65):'A'
chr(20013):'中'
直接用16进制整数编码(Unicode)
'\u4e2d\u6587':'中文'
bytes(UTF-8)
x = b'ABC'
每个字符只占用一个字节
encode():str 转为 bytes
'ABC'.encode('utf-8'):b'ABC'
'中文'.encode('uff-8'):b'\xe4\xb8\xad\xe6\x96\x87'
在 bytes 中,无法显示为 ASCII 字符的字节,用/x##
decode():bytes 转为 str
b'ABC'.decode('ascii'):'ABC'
b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8'):'中文'
b'\xe4\xb8\xad\xff'.decode('utf-8', <b>errors='ignore'</b>):'中'
忽略一小部分无效的字节
len
字符数
len('ABC'):3
len('中文'):2
字节数
len(b'ABC'):3
len(b'\xe4\xb8\xad\xe6\x96\x87'):6
len('中文'.encode('utf-8')):6
UTF-8编码1个中文3个字节
0 条评论
下一页