Python导论
Python是一门脚本语言,其扩展名为.py。脚本语言是被逐句解释执行的,此过程依赖于解释器。Python的解释器有CPython、Pypy等。
程序构成
Python程序由模块、语句、表达式、对象组成。
-
模块:每个
.py源代码文件即为模块,系统自带的模块为系统模块,用户编写的模块为用户模块。模块由若干语句构成。 -
语句:分为简单语句和复合语句。注意Python语句严格强调缩进,否则会导致语法错误。
- 简单语句:一般地,每条简单语句独占一行。若一行内有多条语句,则其之间使用
;分隔。包括表达式、赋值、pass(空语句)、del、return、break、continue、import、global等。 - 导入模块(
import)语句:import [module]或from [module] import [name]。前者导入后使用模块名.成员名调用,后者导入后使用成员名调用。 - 复合语句:有多行代码组成的语句,包括
if、while、for、def、try、with、class等。由头部语句与构造体语句块组成,其中:表示复合语句中语句块的开始。构造体语句块相对于头部语句块有缩进。 - 注释:分为注释语句与注释块,解释时跳过此语句/块。
#开头的语句为注释语句,被'''包围的块为注释块。
- 简单语句:一般地,每条简单语句独占一行。若一行内有多条语句,则其之间使用
-
对象:Python中万物皆对象,对象通过标识、类型、值进行标识。
- 标识:唯一地标识对象,
id([name])返回对象标识,CPython中表示对象的内存地址。 - 类型:对象的数据类型,
type([name])返回对象的数据类型。 - 值:对象的实际值,
print([name])返回对象的实际值。
==判断两个对象的值是否相同,is判断两个对象的标识是否相同(是否指向同一个对象)。 - 标识:唯一地标识对象,
数据类型
| 类型 | 描述 |
|---|---|
| 数字 不可变对象 | 整数(int),任意精度 浮点数(float),有限精度小数 布尔 (bool):False(0)为假,True(非0)为真 复数 (complex):如4+3j(以j/J结尾表示复数) |
字符串(str,' '/" ")不可变对象 | 由任意数量的字符组成 |
元组(tuple,( ))不可变对象 | 不可变的序列,可随机访问 序列中元素可为任意数据类型 |
列表(list,[ ])可变对象 | 可变的序列,可随机访问 序列中元素可为任意数据类型 相当于C++的数组/ vector |
集合(set,{ })可变对象 | 不重复的无序序列,不能随机访问 序列中元素必须为不可变对象,且可被哈希 相当于C++的 unordered_set |
字典(dict,{key:value})可变对象 | 不重复的键值对(Key->Value)序列,必须只访问存在的键 若存在多个重复键,则只保留最后一个 键必须为不可变对象,且可被哈希 相当于C++的 map(但C++ map重复insert时,多个重复键为保留第一个) |
赋值
Python是动态语言,变量无需显式声明,通过赋值可自动确定数据类型。
- 赋值语句:
标识符=对象,=为赋值运算符,用于将标识符指向某个对象(引用该对象)。 - Python支持链式赋值语句:
标识符1=标识符2=对象,对象从右到左依次传递。 - 使用
del删除标识符:del 标识符 - 序列解包赋值:Python可将序列解包为对应相同个数的变量,如
a,b=b,a。若想解包部分值,可使用特殊变量_(相当于其他语言中的ignore:_,b=1,2)。
运算
算术运算
-
四则运算:
+,-,*,/(小数),//(整除) -
取模:
%(注意Python是取模不是取余) -
位运算:
~、&、^、|、<<、>>等 -
乘方:
**/math.pow/pow -
自然底数:
math.exp -
对数:
math.log(不指定底数则为ln\lnln)/math.log10(lg\lglg)/math.log2 -
三角及反三角函数:
math.sin/math.cos/math.tan/math.asin/math.acos/math.atan
逻辑运算
- 非:
not - 与:
and - 或:
or
关系运算
==,!=,>,>=,<,<=,is,is not等in、not in:表示左值是否在右值中(右值为容器)
I/O
输入(input函数)
-
构造:
input(["提示"])([]内表示可选参数) -
作用:从
stdin获取输入,返回所输入的字符串(str),可将字符串转为需要的数据类型,如a=int(input())。 -
若要输入带有提示,则向
input传递提示字符串参数。 -
输入的字符串可使用字符串的分割方法(
str.split()),进而传递给多个标识符。
如a,b=map(int,input().split([sep=None]))(map表示批量作用,split默认以空格分割)
输出(print函数)
- 构造:
print(obj[,sep=' ',end='\n',file=stdout]) obj:所要输出的对象sep:若输出多个对象,指定对象间的分隔符(默认为空格)end:输出行尾结束符(默认为\n)file:指定输出到的文件(默认为stdout)
格式化输出
格式化输出有f-string、str.format()、%格式化三种方法,在此仅介绍f-string方法。
print(f"{对象名:格式说明}")
| 示例 | 说明 |
|---|---|
{value:10} | 宽度10,默认右对齐,空格填充 |
{value:<10} | 宽度10,左对齐 |
{value:^10} | 宽度10,居中对齐 |
{value:0>10} | 宽度10,右对齐,0填充 |
{value:.2f} | 浮点数,小数点后保留2位 |
{value:,.2f} | 加千分位符,保留2位 |
{value:.0%} | 百分比格式,四舍五入到整数百分比 |

776

被折叠的 条评论
为什么被折叠?



