python 学习笔记
这是一篇发布于 1600 天前的文章,部分信息可能已发生改变。
学习 py 只是为了考过计算机二级,所以这里都是基础,而且写的很菜。
python 为脚本语言 (脚本语言 = 解释语言 = 交互式)
C 语言为静态语言 (静态语言 = 需要编译 = 文件)
python 具有通用性
python 语法简洁
python只有33 个保留字
python 采用严格的 缩进 来表明程序的格式框架
缩进 是 python 语言中表明程序框架的唯一手段
当表达分支、循环、函数、类等程序含义时,在 if、while、for、def、class 等保留字所在完整语句后通过英文冒号「:」结尾并在之后进行缩进,表明后续代码与紧邻无缩进语句的所属关系
数字运算与类型
0x 或 0X 十六进 如: 10 = 16
十进制不需要加任何东西
0o 或 0O 八进制 如: 0o10 = 8
0b 或 0B 二进制
可以使用三个函数来进行不同数字类型的转换:
bin 转换一个数字为 2 进制,如 bin(4) 结果为 0b100
oct 转换一个数字为 8 进制,如 oct(10) 结果为0o12
hex 转换一个数字为 16 进制,如 hex(15) 结果为0xf
四种不同的数据类型可以直接进行计算,如:0xf + 5 = 20
浮点数
浮点数有两种表示方法,十进制的一般表示与科学计数法表示。
浮点数必须带有小数点,小数点后可以为 0
只有十进制的数据才可以被表示为浮点数,除十进制数字以外,其他数字不能被表示为浮点数。
1.123456、1.274e10、1000.00、1.2734e-4 都为浮点数
浮点数的科学计数法用「e」、「E」作为幂的符号,以 10 为基数,含义如下
<a>e<b> = a*10b
符号 | 描述 |
---|---|
a + b | 加 |
a - b | 减 |
a * b | 乘 |
a / b | 除 |
a % b | a / b 之商的余数,也称为模运算、取余。 |
a ** b | a 的 b次方 |
a // b | a / b 只保留整数的商。也就是取整,不会进行四舍五入。 |
-a | a 的负值。等价于 -1*(a) |
+a | a 本身,即 1*(a) |
函数
import 引用其他库,如 import turtle
print 用来打印输出 。
输出单个常量或字符串
print(“Hello World !”) 输出结果为 Hello World !
a=100
print(“a”) 输出结果为 a
print(a) 输出结果为 100
print(“中国”) 输出结果为 中国
输出多个字符串或常量
a,b,c=1,2,3
print(a,b,a,c) 输出结果为 1 2 1 3
混合输出字符串与变量值
a=18
b=20
print(“我今年 {} 岁,我的弟弟 {} 岁”.format(b,a)) 输出结果为 「我今年 20 岁,我的弟弟 18 岁」
print(“数字 {} 和数字 {} 的乘积是 {} 。”.format(a,b,a*b)) 输出结果为 数字 18 和数字 20 的乘积是 360 。
在输出结尾增加特定字符
a=18
print(a ,end=”岁”) 输出结果为 18岁
len 用来计算字符串长度, 如: len(“123456789”) 或 len(a)
if 用来判断是否成立,如 if a>5:
input 输入一个数据,如:input(“请输入一个数”) 通过 input 获取的数据都为 字符串,而不是数字
当 input 需要获取数字的时候可以使用 eval 来将字符串转换为数字。
如:evel(input(“请输入你的年龄”))
eval 能够以 python 表达式的方式解析并执行字符串,将返回结果输出。
如: type(eval(input(“请输入年龄”)))
<class ‘int’>
请注意,eval 函数想要输出已赋值的函数,必须加双引号「“”」,想要输出原字符串,必须加在双引号的基础上加单引号「’ ‘」
eval(a) 错误格式。
eval(“”a””) 错误格式。
eval(‘’a’’) 错误格式。(两层单引号嵌套,python 允许使用单双引号混合嵌套,单不允许非混合嵌套,如 eval(“‘a’”)是被允许的。)
eval(“a”) 正确格式,输出 a 被赋的值。
eval(“‘a’”) 正确格式,输出字符串 a。
eval(‘a’) 正确格式,输出 a 被赋的值。
eval(‘“a”‘) 正确格式,输出字符串 a。
type 查看数据类型,如:type(a) str 为字符串,int 为整数,float 为浮点数
数字运算函数
abs 用来取绝对值,如
abs(a)
divmod 用来把函数把除数和余数运算结果结合起来,如运行
divmod(4,2)
返回结果为(2,0)
pow 用来返回 x 的 y 次方的值。 如执行
pow(2,3)
返回结果为8
。此外,pow 还可以进行复合运算,如
pow(x, y[, z])
, 此命令代表先计算x的y次方,如果z在存在,则再对结果进行取模,其结果等效于pow(x,y) %z,如执行
pow(2,3,3)
返回的结果为2
。round 用来四舍五入,如
rount(a)
,当a=1.789
时,round(a)
的结果是2
。此外,
round
还可以指定保留几位小数,如rount(a,2)
,指保留两位小数,当a=1.789
时,round(a,2)
的结果为1.79
max 用来确定某一组数里面谁为最大值,如
max(a,b,c,d,e,f,...n)
min 用来确定某一数组里面谁为最小值,如
min(a,b,c,d,e,f,...n)
int 用来取整,如:
int(a)
, 取整时,不进行四舍五入,当a=1.789
时,int(a)
的结果是1
。
字符处理
切片
用法:「字符串」[起点:终点:步长]
a[:2] 输出终点为 2 的数字,步长为 1 **当起点被省略时,起点值默认为 0。 **
a[1:] 从起点 1 开始的数字,步长为 1 当终点被省略时,默认输出所有从起点开始的字符
a[::-1] 输出全部字符,但倒着来遍历字符串。 当步长被省略时,默认步长为 1
1 | #赋值且转换为字符串形式 |
注意:切片只能处理字符串,并不能用来处理 int 格式的数字,故需要将数字先转换为字符串。
1 | 1:] a[ |
format
格式控制
1 | a="小菜" |
: | 固定符号,必须包含引号。 |
---|---|
<填充> | 用于填充单个字符 |
< | 左对齐 |
> | 右对齐 |
^ | 居中对齐 |
<宽度> | 槽的设定输出宽度,若字符的宽度(长度)小于设定的宽度,则默认使用空格来填充。 |
, | 数字的千位分隔符,适用于整数与浮点数 |
. | 浮点数小数部分的精度或字符串的最大输出长度 |
<类型> | 整数类型,b,c,d,o,x,X 浮点数类型,e,E,f,% |
<填充> <对齐类型> <宽度> 主要用于对显示格式的规范。
**类型中的字母代表的含义 **
b 二进制
c 转为数字对应的 ascii 码字符
d 十进制
o 八进制
x,X 十六进制
e,E 科学计数法
f 浮点数
% 百分数
在 format中,可以使用大括号来转义大括号
1 | print("{0}{{}}\n123123后面有个大括号".format("123123")) |
一些栗子
1 | #居中并填充* |
字符操作
操作符 | 描述 | 栗子 |
---|---|---|
x + y | 连接两个字符串 | “asd” + “fgh” 结果为 “asdfgh” |
x * n 或 n * x | 复制 n 次字符串 x | “asd” * 2 结果为 “asdasd” |
x in y | 如果 x 包含在 y 中返回 True,否则返回 Flase | “as” in “asd” 结果为 True |
考试题目
题目: 输入字符串 S,按要求把 S 输出到屏幕,格式要求:宽度为 30 个字符,星号字符 * 填充,居中对齐,如果输入字符超过 30 位,则全部输出。
例如:键盘输入字符串 S 为 “SSS” ,屏幕输出”******SSS*******“
代码:
1 | S = input("请输入一个字符串:") |
解释:
使用 format
来输出 S
,传递 {:*^30}
给 format
,:
代表后面带填充的字符,只能是一个字符,不指定默认为空格填充
^<``>
分别是居中、左对齐、右对齐。
30
为位数