目录
1.整型和浮点型
2.布尔类型
3.字符串
3.1字符串的转义符:
3.2长字符串
3.3字符串格式化
3.3.1字符串格式化输出--%占位符
3.3.2字符串格式化输出-- str.format
3.3.3 字符串格式化输出--f-string
3.4序列类型
3.5内置方法:
3.6特殊字符
4.类型转换
5.空值None
1.整型和浮点型
整型:Python中整数都是整型(int);
整型数字之间进制转换;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17# 十六进制:以0x开头 print(0x11) print(0x111) # 二进制 print(0b101) print(0B101) # 八进制 print(0o12) print(0o23) # 十进制转换为二进制 print(bin(3)) # 十进制转换为十六进制 print(hex(19)) # 十进制转换为八进制 print(oct(10))
浮点型:在python中小数都属于浮点型(float),有两种表现形式:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26# 小数点形式 f = 3.14 print(f) # 3.14 print(type(f)) # <class 'float'> # 指数形式: aEn 或 aen ''' 3.2E5 = 3.2×105,其中 3.2 是尾数,5 是指数。 2.7E-3 = 2.7×10-2,其中 2.7 是尾数,-3 是指数。 0.2E8 = 0.2×107,其中 0.2 是尾数,8 是指数。 ''' f1 = 3.2E5 print(f1) # 320000.0 print(type(f1)) # <class 'float'> f2 = 3.2E-5 print(f2) # 3.2e-05 print(type(f2)) # <class 'float'> f3 = 3.1415926123456789876543217789 print(f3) # 双精度(double float,保留17为有效数字) print(type(f3))
注意:小数点后只能保留17个有效数字!
2.布尔类型
在python中用bool表示布尔类型,"真"用true表示,“假”用false表示;
1
2
3数据类型暗转换;在如下案例中,python不会进行数据类型的暗转换,返回False;但在js中,会将第一个1转换为字符串1再去比较,返回True; print(1 == '1') #False:int与str作比较,返回False;
注意:任意值都有自己的布尔值,这就涉及到布尔的零值;
1
2
3
4
5#任意数据类型都有一个具体的布尔值为False,我们成为零值,该类型的其他值的布尔值为True; print(bool("")) # 字符串的零值 “” print(bool(0)) # 整型的零值 0 print(bool(False)) # 布尔类型的零值 False
3.字符串
字符串是由零个或多个字符串组成的有限序列。字符串的内容可以包括字母,标点,特殊符号,中文,日文等全世界的所有字符;在python中通过单引号或双引号标识;
python中单引号和双引号没有任何区别!
3.1字符串的转义符:
转义字符 | 说明 |
---|---|
n | 换行符,将光标位置移到下一行开头。 |
r | 回车符,将光标位置移到本行开头。 |
t | 水平制表符,也即 Tab 键,一般相当于四个空格。 |
v | 纵向制表符 |
a | 蜂鸣器响铃。注意不是喇叭发声,现在的计算机很多都不带蜂鸣器了,所以响铃不一定有效。 |
b | 退格(Backspace),将光标位置移到前一列。 |
\ | 反斜线 |
' | 单引号 |
" | 双引号 |
在字符串行尾的续行符,即一行未完,转到下一行继续写。 | |
f | 换页 |
1
2
3
4
5
6s1 = "hi yuannhi,alvin" print(s1) s2 = 'I'm yuan' print(s2) s3 = "D:\nythonProject\nenv\Scripts\python.exe" print(s3)
3.2长字符串
1
2
3
4
5
6
7s = """ s = "hi yuan\nhi,alvin" I'm yuan 这是一个python解释器路径:"D:\nythonProject\nenvScriptspython.exe" 长字符串中放置单引号或者双引号不会导致解析错误 """ print(s)
3.3字符串格式化
字符串格式化有三种方式:%占位符,str.format,fstring
3.3.1字符串格式化输出--%占位符
1
2
3name = "yuan" age = 23 print("My name is %s; My age is %d"%(name,age))
在print函数中,由引号包围的是格式化字符串,相当于字符串模板,可以放置一些转换说明符(占位符);
转换说明符 | 解释 |
---|---|
%d、%i | 转换为带符号的十进制整数(十进制:decimalism ) |
%u | 格式化无符号整型 |
%o | 将十进制整数转换为不带符号的八进制整数(八进制: octal number ) |
%x、%X | 将十进制整数转换为不带符号的十六进制整数(十六进制: hexadecimal number ) |
%e | 转化为科学计数法表示的浮点数(e 小写) |
%E | 转化为科学计数法表示的浮点数(E 大写) |
%f、%F | 转化为十进制浮点数(float); #%a.bf,a表示浮点数的打印长度,b表示浮点数小数点后面的精度 更多使用方法详见:python字符串格式化之%s、%d、%f的使用_asyher的博客-CSDN博客 |
%g | 智能选择使用 %f 或 %e 格式 |
%G | 智能选择使用 %F 或 %E 格式 |
%c | 格式化字符及其 ASCII 码 |
%r | 使用 repr() 函数将表达式转换为字符串 |
%s | 使用 str() 函数将表达式转换为字符串 |
占位符相关指令:
符号 | 功能 |
* | 定义宽度或者小数点精度 |
- | 用做左对齐 |
+ | 在正数前面显示加号( + ) |
<sp> | 在正数前面显示空格 |
# | 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X') |
0 | 显示的数字前面填充'0'而不是默认的空格 |
% | '%%'输出一个单一的'%' |
(var) | 映射变量(字典参数) |
m.n. | m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |
3.3.2字符串格式化输出-- str.format
Python2.6 开始,新增了一种格式化字符串的函数 str.format()。基本语法是通过 {} 和 : 来代替以前的 % 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20#位置映射 print("我是 {},今年 {} 岁,有 {} 零花钱。".format('王老师', 38, 27.35)) #我是 王老师,今年 38 岁,有 27.35 零花钱。 #关键字映射 print("我是 {},今年 {age} 岁,有 {} 零花钱。".format('王老师', 27.35, age = 11)) #我是 王老师,今年 11 岁,有 27.35 零花钱。 #元素访问 print("{0[0]}.{0[1]}".format(('baidu','com'))) #baidu.com #填充与对齐 "^"代表居中 "<"代表左对齐 ">"代表右对齐 print("{:*>8}".format("245")) #*****245 #format数字精度设置 a="我是{0},我的存款有{1:.2f}" print(a.format("煮雨",3888.4123654)) # '我是煮雨,我的存款有3888.41'
3.3.3 字符串格式化输出--f-string
f-string是python3.6 之后版本添加的,称之为字面量格式化字符串,是新的格式化字符串的语法。
3.4序列类型
字符串属于序列类型,所谓序列,指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们。
Python 支持正向索引(正索引),即从左向右计数索引,第一位为0,第二位为1,依次类推;还支持索引值是负数(负索引),此类索引是从右向左计数,换句话说,从最后一个元素开始计数,从索引值 -1 开始。
序列类型支持的操作:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29# (1)索引取值 s = "hello yuan" print(s[6]) print(s[-10]) # (2)切片取值:序列类型对象[start : end : step] step默认是1;step为正时,即从左向右切,step为负时,即从右向左切; s = "hello yuan" print(s[1:4]) # ell :取索引1到索引3(左闭又开) print(s[:4]) # hell :start缺省,默认从0取 print(s[1:]) # ello yuan : end缺省,默认取到最后 print(s[1:-1]) # ello yua print(s[6:9]) # yua print(s[-4:-1]) # yua print(s[-1:-4]) # 空 print(s[-1:-4:-1]) #nau step为1:从左向右一个一个取。为-1 ,从右向左一个取 # (3)判断存在:Python 中,可以使用 in 关键字检查某元素是否为序列的成员。 s = "hello yuan" print("yuan" in s) # True # (4)支持两种类型相同的序列使用“+”运算符做相加操作,它会将两个序列进行连接,但不会去除重复的元素。 # 使用数字 n 乘以一个序列会生成新的序列,其内容为原来序列被重复 n 次的结果 s = "hello"+" yuan" print(s) # hello yuan s= "*"*10 print(s) # **********
3.5内置方法:
方法 | 作用 | 示例 | 输出 |
---|---|---|---|
upper | 全部大写 | "hello".upper() | "HELLO" |
lower | 全部小写 | "Hello".lower() | "hello" |
capitalize() | 将字符串的第一个字符转换为大写 | 复制代码
| ‘Sxm’ |
startswith() | 是否以a开头 | "Yuan".startswith("Yu") | True |
endswith() | 是否以a结尾 | "Yuan".endswith("a") | False |
isdigit() | 是否全数字 | '123'.isdigit() | True |
isalpha() | 是否全字母 | 'yuan123'.isalpha() | False |
isalnum() | 是否全为字母或数字 | 'yuan123'.isalnum() | True |
strip() | 去两边空格; lstrip():去除左侧空格或指定字符; rstrip():去除右侧空格或制定字符 | " hi yuan n".strip() | "hi yuan" |
join(seq) | 将多个字符串连接在一起 | "-".join(["yuan","alvin","eric"]) | "yuan-alvin-eric" |
| 按某字符分割字符串,默认按空格分隔;如果num有指定值,则仅截取num+1个子字符串 | "yuan-alvin-eric".split("-") | ['yuan', 'alvin', 'eric'] |
find() | 搜索指定字符串,没有返回-1 | "hello world".index("w") | 6 |
index() | 同上,但是找不到会报错 | "hello world".index("w") | 6 |
count() | 统计指定的字符串出现的次数 | "hello world".count("l") | 3 |
len(string) | 返回字符串长度 | ||
replace(old,new[,max]) | 替换old为new;如果定义了max,则替换不超过max次 | 'hello world'.replace(‘world',‘python') | "hello python" |
maketrans() | 创建字符映射的转换表 | ||
translate(table,deletechars="") | 根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中 | ||
bytes.decode(encoding="utf-8", errors="strict") | Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。 | ||
encode(encoding='UTF-8',errors='strict') | 以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace' | ||
format() | 格式化方法 |
3.6特殊字符
方法 | 作用 |
chr() | 返回整型参数值所对应的UNICODE字符的字符串 |
ord() | 返回某个字符的ASCII值(0~255)或者UNICODE数值 |
4.类型转换
1
2
3
4
5
6
7
8
9
10
11
12
13
14i = int("3") print(i,type(i)) # 3 <class 'int'> s = str(3.14) print(s,type(s)) # 3.14 <class 'str'> b1 = bool(10) b2 = bool(0) b3 = bool("yuan") b4 = bool("") b5 = bool("0") print(b1) # True print(b2) # False print(b3) # True print(b4) # False print(b5) # True
5.空值None
在 Python 中,有一个特殊的常量 None(N 必须大写)。和 False 不同,它不表示 0,也不表示空字符串,而表示没有值,也就是空值。
需要注意的是,None 是 NoneType 数据类型的唯一值(其他编程语言可能称这个值为 null、nil 或 undefined),也就是说,我们不能再创建其它 NoneType 类型的变量,但是可以将 None 赋值给任何变量。如果希望变量中存储的东西不与任何其它值混淆,就可以使用 None。
最后
以上就是清脆百合最近收集整理的关于Python基础数据类型1.整型和浮点型2.布尔类型3.字符串4.类型转换5.空值None的全部内容,更多相关Python基础数据类型1内容请搜索靠谱客的其他文章。
发表评论 取消回复