学习Python3之一:基础
2018-07-28 15:18:01 37 举报
AI智能生成
Python3是一种高级编程语言,以其简洁易读的语法和强大的功能而受到广大程序员的喜爱。它支持多种编程范式,包括面向对象的、命令式、函数式和过程式编程。Python3的设计哲学强调代码的可读性和简洁性,尤其是使用空格缩进划分代码块,而不是使用大括号或者关键词。Python3拥有丰富的内置数据类型和标准库,支持文件处理、网络编程、数据库访问等众多功能。此外,Python3还具有跨平台的特性,可以在Windows、Linux、Mac等多种操作系统上运行。对于初学者来说,Python3是一个理想的入门语言,因为它的语法简单,易于理解,而且有大量的学习资源和社区支持。
作者其他创作
大纲/内容
学习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技术,动态编译,执行速度快,比 CPython 快5倍
Jython:在Java平台运行,将Python代码编译成Java字节码执行
IronPython:在.Net平台运行的解释器,将Python代码编译成.Net字节码执行
3、语法
pass
空语句,用来占位(若不用 pass,只留空,会报错)
逻辑运算符
and
or
not
比较运算符
==
!= 或 <>
>、<、>=、<=
if
if <条件判断1>: <执行1>elif <条件判断2>: <执行2>elif <条件判断3>: <执行3>else: <执行4>
三元表达式
value_true if condition else value_falseeg:\"fat\" if is_fat else \"not fat\"
循环
for
for x in ...: pass# i 从0~4for i in range(5): pass
while
while <条件判断>: pass
break:结束循环
continue:跳过本次循环
若死循环,可用 ctrl+c退出
list、tuple
list:有序集合(即数组)
tuple:元祖,不可变 list(初始化后不能改变)
代码更安全,能用代替 list 的尽量用tuple
dict、set
dict:字典,key-value 存储
使用 Hash 算法来存储 keykey 必须是不变对象(整数、字符串)key 的存放顺序和放入顺序无关
优点:极快的查找速度缺点:占用大量内存,内存浪费多
set:和 dict 类似,但不存储 value(只含 key)
2、基础知识
编写
后缀名.py文件
执行:python test.py
直接执行
文件头:#!/usr/bin/env python3# -*- coding: utf-8 -*-
chmod +x .py
执行:test.py
采用缩进方式(不使用 分号;、大括号{ }),使用4个空格的缩进
注意复制、粘贴代码时缩进可能出错
语句以:结尾,下一行缩进视为代码块
#开头为注释
大小写敏感
输入输出
格式化:%
%d:整数,%2d--占2位整数,%02d--补0占2位%f:浮点数,%.2f--保留2位小数%s:字符串%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... line2... 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'):'中文'
忽略一小部分无效的字节
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 条评论
回复 删除
下一页