Python-100-Day ① Python 基础
Python 100 Days 的学习笔记 ① : Day 1 ~ Day 7
本文主要涉及:
- Python 基本 (变量, 程序结构, 函数参数)
- 基本函数 (
print
,input
, 类型转换) 的使用 - 基本类型 (
str
,list
,tuple
,set
,dict
) 的使用
初识Python
确认Python的版本
在终端或命令行提示符中键入下面的命令。
1 | python --version |
当然也可以先输入python进入交互式环境,再执行以下的代码检查Python的版本。
1 | import sys |
print 函数
函数参数表如下:
1 | print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) |
参数的作用如下:
value
: 打印的数据, 可传入多个数据sep
: 多个数据之间的分隔符, 默认为空格end
: 打印结束后的分隔符, 默认为换行file
: 打印的输出位置, 默认为标准输出flush
: 是否强制刷新缓冲
input 函数
1 | input(prompt=None, /) |
参数: prompt
: 需要打印的提示文字
在 Python 3 中, input
函数默认接收到的是 string
类型, 返回值也为 string
类型
Python 命令行参数
(附加内容)
Python 可以在命令行中输入相关参数从而执行不同的功能, 主要可以使用的参数有以下这些:
1 | usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ... |
语言元素
变量命名
对于每个变量我们需要给它取一个名字,就如同我们每个人都有属于自己的响亮的名字一样。在Python中,变量命名需要遵循以下这些必须遵守硬性规则和强烈建议遵守的非硬性规则。
- 硬性规则:
- 变量名由字母(广义的Unicode字符,不包括特殊字符)、数字和下划线构成,数字不能开头。
- 大小写敏感(大写的
a
和小写的A
是两个不同的变量)。 - 不要跟关键字(有特殊含义的单词,后面会讲到)和系统保留字(如函数、模块等的名字)冲突。
- PEP 8要求:
- 用小写字母拼写,多个单词用下划线连接。
- 受保护的实例属性用单个下划线开头(后面会讲到)。
- 私有的实例属性用两个下划线开头(后面会讲到)。
类型转换函数
1 | int(x [,base ]) 将x转换为一个整数 |
分支结构
“Flat is better than nested.”
如果可以使用扁平化的结构就不要去用嵌套
循环结构
range 函数
1 | range(stop) -> range object |
range(101)
可以产生一个0到100的整数序列。range(1, 100)
可以产生一个1到99的整数序列。range(1, 100, 2)
可以产生一个1到99的奇数序列,其中的2是步长,即数值序列的增量。
函数与模块的使用
参数传递
Python 支持可变参数:
1 | # 在参数名前面的*表示args是一个可变参数 |
Python 程序标准格式
为了解决变量作用域问题, 同时尽量避免全局变量的使用, 因此可以将 Python 程序按以下格式进行编写:
1 | def main(): |
字符串和常用数据结构
字符串
1 | # 通过len函数计算字符串的长度 |
字符串格式化
1 | "My name is %s and weight is %d kg!" % ('Zara', 21) |
符号 | 含义 |
---|---|
%s |
格式化字符串 |
%c |
格式化字符及其ASCII码 |
%d |
格式化整数 |
%u |
格式化无符号整型 |
%o |
格式化无符号八进制数 |
%x |
格式化无符号十六进制数 |
%X |
格式化无符号十六进制数(大写) |
%f |
格式化浮点数字,可指定小数点后的精度 |
%e |
用科学计数法格式化浮点数 |
%E |
作用同 %e ,用科学计数法格式化浮点数 |
%g |
%f 和 %e 的简写 |
%G |
%F 和 %E 的简写 |
%p |
用十六进制数格式化变量的地址 |
Python 2.6 开始,新增了一种格式化字符串的函数 str.format()
,它增强了字符串格式化的功能。参考菜鸟教程
基本语法是通过 {}
和 :
来代替以前的 %
。
format
函数可以接受不限个参数,位置可以不按顺序。
1 | >>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序 |
也可以设置参数:
1 | print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com")) |
数字 | 格式 | 输出 | 描述 |
---|---|---|---|
3.1415926 | {:.2f} | 3.14 | 保留小数点后两位 |
3.1415926 | {:+.2f} | +3.14 | 带符号保留小数点后两位 |
-1 | {:+.2f} | -1.00 | 带符号保留小数点后两位 |
2.71828 | {:.0f} | 3 | 不带小数 |
5 | {:0>2d} | 05 | 数字补零 (填充左边, 宽度为2) |
5 | {:x<4d} | 5xxx | 数字补x (填充右边, 宽度为4) |
10 | {:x<4d} | 10xx | 数字补x (填充右边, 宽度为4) |
1000000 | {:,} | 1,000,000 | 以逗号分隔的数字格式 |
0.25 | {:.2%} | 25.00% | 百分比格式 |
1000000000 | {:.2e} | 1.00e+09 | 指数记法 |
13 | {:10d} | 13 | 右对齐 (默认, 宽度为10) |
13 | {:<10d} | 13 | 左对齐 (宽度为10) |
13 | {:^10d} | 13 | 中间对齐 (宽度为10) |
11 | '{:b}' |
1011 |
二进制 |
11 | '{:d}' |
11 |
十进制 |
11 | '{:o}' |
13 |
八进制 |
11 | '{:x}' |
b |
十六进制 |
11 | '{:#x}' |
0xb |
加上 0x |
11 | '{:#X}' |
0XB |
加上 0X |
^
, <
, >
分别是居中、左对齐、右对齐,后面带宽度, :
号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
+
表示在正数前显示 +
,负数前显示 -
;
(空格)表示在正数前加空格
b
、d
、o
、x
分别是二进制、十进制、八进制、十六进制。
此外我们可以使用大括号 {}
来转义大括号,如下实例:
1 | "{} 对应的位置是 {{0}}".format("runoob") # runoob 对应的位置是 {0} |
列表
1 | len(list) # 计算长度 |
元组
- 任意无符号的对象,以逗号隔开,默认为元组
- 元组的元素不能修改和删除
- 可以使用
del
语句来删除整个元组 - 元组使用小括号,列表使用方括号
- 元组中只包含一个元素时,需要在元素后面添加逗号
- 元组在创建时间和占用的空间上面都优于列表
- 如果不需要对元素进行添加、删除、修改的时候,可以考虑使用元组
- 当然如果一个方法要返回多个值,使用元组也是不错的选择
1 | len(list) # 计算长度 |
集合
- 集合(set)是一个无序的不重复元素序列
- 使用大括号
{}
或者set()
函数创建集合 - 创建一个空集合必须用
set()
而不是{}
, 因为{}
是用来创建一个空字典。
1 | set.add(x) # 添加单个元素 |
字典
- 字典是另一种可变容器模型,且可存储任意类型对象
- 字典的每个键值
key=>value
对用冒号:
分割 - 每个键值对之间用逗号
,
分割,整个字典包括在花括号{}
中 - 键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一
- 值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组, 而不能用列表
1 | str(dict) # 输出字典,以可打印的字符串表示 |
Python-100-Day ① Python 基础