Python基础---------数据类型

一、变量的命名规则

1.必须使用英文字母,数字,下划线组成
2.不能是数字开头,更不能是纯数字
3.要有意义
4.不要太长
5.不要用中文
6.禁止用关键字或命令
7.区分大小写
8.推荐使用两种形式
驼峰式:大小写字母混合
下划线:单词间加下划线分开

但是在python中, 程序员不用关心内存溢出等问题,因为python已经帮忙实现了内存管理。
1、引用计数器
2、垃圾回收机制
每个对象都会维护一个自己的引用计数器,每次对其引用,计数器就会加1.当一个对象的计数器为零时,垃圾回收机制就会把他从内存中清除,释放它之前占用的内存空间。

二、数据类型

在内存中存储的数据可以由多种类型。
Python定义了一些标准类型,用于存储各种类型的数据。
五个标准数据类型:number数字,string字符串,list列表,tuple元组,dictionary字典

三、 number数字

Python数字类型用于存储数值
数值类型是不允许改变的,这意味着如果改变数字类型的值,将重新分配内存空间
示例:var = 10
可以用del语句删除一些数字对象的引用,多个对象以逗号分开
示例: del var
del var_a,var_b

3.1 Python支持三种不同的数值类型:

【整型int,浮点型float,复数complex】
整型(int):通常被称为整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型。
浮点型(float):浮点型由整数部分和小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)
复数(complex): 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

3.2 数字类型转换

有时候,我们需要对数据内置的类型进行转换,数据类型的转换,只需要将数据类型作为函数名即可

  • int(x) 将x转换为一个整数。
  • float(x) 将x转换到一个浮点数。
  • complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。
  • complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。
以下实例将浮点数变量a转换为整数:  
a = 1.0  
print (int(a))  
1  

3.3 数字运算

Python解释器可以作为一个简单的计算器,您可以在解释器里输入一个表达式,它将输出表达式的值.表达式的语法很直白: +, -, * 和 /, 和其它语言(如Pascal或C)里一样。

例如:
>>> 2 + 2  
4  
>>> 50 - 5*6  
20  
>>> (50 - 5*6) / 4  
5.0  
>>> 8 / 5  # 总是返回一个浮点数  
1.6  

在整数除法中,除法 / 总是返回一个浮点数,如果只想得到整数的结果,丢弃可能的分数部分,可以使用运算符 // :

例如:
>>> 17 / 3  # 整数除法返回浮点型  
5.666666666666667  
>>>  
>>> 17 // 3  # 整数除法返回向下取整后的结果  
5  
>>> 17 % 3  # %操作符返回除法的余数  
2  
>>> 5 * 3 + 2   
17 

幂运算

扫描二维码关注公众号,回复: 11241771 查看本文章
例如:
>>> 5 ** 2  # 5 的平方  
25  
>>> 2 ** 7  # 2的7次方  
128 

不同类型的数混合运算时会将整数转换为浮点数

例如:
>>> 3 * 3.75 / 1.5  
7.5  
>>> 7.0 / 2  
3.5  

在交互模式中,【最后被输出的表达式结果被赋值给变量 _】

例如:
>>> tax = 12.5 / 100  
>>> price = 100.50  
>>> price * tax  
12.5625  
>>> price + _  
113.0625  
>>> round(_, 2)  
113.06  
# 此处,_ 变量应被用户视为只读变量  

3.4 随机函数

随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。
Python包含以下常用随机数函数

函数	                            描述
[choice(seq)]	                    从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。
[randrange ([start,] stop [,step])] 从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1
[random()]	                    随机生成下一个实数,它在[0,1)范围内。
[seed([x])]	                    改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。
[shuffle(lst)]	                    将序列的所有元素随机排序
[uniform(x, y)]                     随机生成下一个实数,它在[x,y]范围内。

四、 字符串string

字符串或串(String)是由数字、字母、下划线组成的一串字符.
在Python中,凡是用引号引起来的都是字符串。字符串可以用单引号、双引号或者三引号引起,没什么区别,只是一些特殊的格式需要不用的引号
想多行赋值一个字符串,就需要三引号

如果你要实现从字符串中获取一段子字符串的话,可以使用 [头下标:尾下标] 来截取相应的字符串,其中下标是从 0 开始算起,可以是正数或负数,下标可以为空表示取到头或尾。

[头下标:尾下标] 获取的子字符串包含头下标的字符,但不包含尾下标的字符。

比如:
str = 'Hello Wrold'
print (str)
print (str[0])
print (str[2:5])
print (str[2:])
print (str * 2)
print (str + "TEST")

Hello Wrold
H
llo
llo Wrold
Hello WroldHello Wrold
Hello WroldTEST

4.1 字符串更新:可以截取字符串的一部分并与其他字段拼接

例如:
str = 'Hello Wrold'
print (str + "TEST")
Hello WroldTEST

4.2 转义字符

在需要在字符中使用特殊字符时,python用反斜杠()转义字符。如下表:

转义字符	        描述
(在行尾时)	续行符
\		反斜杠符号
'		单引号
"		双引号
\a		响铃
\b		退格(Backspace)
\000		空
\n		换行
\v		纵向制表符
\t		横向制表符
\r		回车
\f	 	换页
\oyy		八进制数,yy 代表的字符,例如:\o12 代表换行,其中 o 是字母,不是数字 0。
\xyy		十六进制数,yy代表的字符,例如:\x0a代表换行
\other		其它的字符以普通格式输出

4.3 字符串运算符

下表实例变量a值为'hello',b变量值为'Python

操作符	 描述								       实例
+	 字符串连接	   				                       a + b 输出结果: HelloPython
*	 重复输出字符串							       a*2 输出结果:HelloHello
[]	 通过索引获取字符串中字符						       a[1] 输出结果 e
[ : ]	 截取字符串中的一部分,遵循左闭右开原则,str[0,2] 是不包含第 3 个字符的。   a[1:4]  输出结果 ell
in	 成员运算符 - 如果字符串中包含给定的字符返回 True			      'H' in a 输出结果 True
not in	 成员运算符 - 如果字符串中不包含给定的字符返回 True			      'M' not in a 输出结果 True
%	 格式字符串							      请看下面

4.4 字符串格式化

Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。
**在Python中,字符串格式化使用与C中sprintf函数一样的语法.

例如:
print('我叫%s 今年 %d 岁!' % ('小明',10))
我叫小明 今年 10 岁!

Python字符串格式化符号

符 号	描述
%c		格式化字符及其ASCII码
%s		格式化字符串
%d		格式化整数
%u		格式化无符号整型
%o		格式化无符号八进制数
%x		格式化无符号十六进制数
%X		格式化无符号十六进制数(大写)
%f		格式化浮点数字,可指定小数点后的精度
%e		用科学计数法格式化浮点数
%E		作用同%e,用科学计数法格式化浮点数
%g		%f和%e的简写
%G		%f 和 %E 的简写
%p		用十六进制数格式化变量的地址

Python三引号
**Python三引号允许一个字符串跨多行,字符串中包含换行符、制表符以及其他符号

例如:
para_str = """这是一个多行字符串的实例
多行字符串可以使用制表符
TAB(\t).
也可以是使用换行符[\n].
"""
print(para_str)

# 以上实例输出结果为
这是一个多行字符串的实例
多行字符串可以使用制表符
TAB(    ).
也可以是使用换行符[
].
# 三引号让程序员从引号和特殊字符的泥潭里面解脱出来,自始至终保持一小块字符串的格式是所谓的所见即得格式.
# 一个典型用例是,当你需要一块HTML或者SQL时,这时用字符串组合,特殊字符串转义会非常的繁琐.

4.5 f-string字面量格式化字符串

f-string 是 python3.6 之后版本添加的,称之为字面量格式化字符串,是新的格式化字符串的语法。之前我们习惯用百分号 (%):

>>> name = 'Runoob'  
>>> 'Hello %s' % name  
'Hello Runoob'
# f-string格式和字符串以f开头,后面跟着字符串,字符串中的表达式用大括号{}包起来,
# 他会将变量或表达式计算后的值替换进去,实例如下.

name = 'Runoob'
print(f'Hello {name}')

age = 20
print(f'{age+1}')

w = {'name':'Runoob','url':'www.runoob.com'}
print(f'{w["name"]}:{w["url"]}')

Hello Runoob
21
Runoob:www.runoob.com

在Python2中,普通字符串是以8位ASCII码进行存储的,而Unicode字符串则存储为16位unicode字符串,这样能够表示更多的字符集。使用的语法是在字符串前面加上前缀 u。
在Python3中,所有的字符串都是Unicode字符串

4.6 字符串内建函数

Python的字符串常用内建函数如下:

序号	方法及描述
1	capitalize() 将字符串的第一个字符转换为大写
2	center(width, fillchar)返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。
3	count(str, beg= 0,end=len(string)) 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
4	bytes.decode(encoding="utf-8", errors="strict")Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。
5	encode(encoding='UTF-8',errors='strict')以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'
6	endswith(suffix, beg=0, end=len(string)) 检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False
7	expandtabs(tabsize=8)把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。
8	find(str, beg=0, end=len(string))检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1
9	index(str, beg=0, end=len(string))跟find()方法一样,只不过如果str不在字符串中会报一个异常.
10	isalnum()如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False
11	isalpha()如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False
12	isdigit()如果字符串只包含数字则返回 True 否则返回 False..
13	islower()如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
14	isnumeric()如果字符串中只包含数字字符,则返回 True,否则返回 False
15	isspace()如果字符串中只包含空白,则返回 True,否则返回 False.
16	istitle()如果字符串是标题化的(见 title())则返回 True,否则返回 False
17	isupper()如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
18	join(seq)以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
19	len(string) 返回字符串长度
20	ljust(width[, fillchar])返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。
21	lower() 转换字符串中所有大写字符为小写.
22	lstrip()截掉字符串左边的空格或指定字符。
23	maketrans()创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
24	max(str)返回字符串 str 中最大的字母。
25	min(str)返回字符串 str 中最小的字母。
26	replace(old, new [, max])把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。
27	rfind(str, beg=0,end=len(string))类似于 find()函数,不过是从右边开始查找.
28	rindex( str, beg=0, end=len(string))类似于 index(),不过是从右边开始.
29	rjust(width,[, fillchar])返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串
30	rstrip()删除字符串字符串末尾的空格.
31	split(str="", num=string.count(str))num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串
32	splitlines([keepends])按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
33	startswith(substr, beg=0,end=len(string))检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。
34	strip([chars])在字符串上执行 lstrip()和 rstrip()
35	swapcase()将字符串中大写转换为小写,小写转换为大写
36	title()返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
37	translate(table, deletechars="")根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中
38	upper()转换字符串中的小写字母为大写
39	zfill (width)返回长度为 width 的字符串,原字符串右对齐,前面填充0
40	isdecimal()检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。

五、列表list

猜你喜欢

转载自www.cnblogs.com/wangchengshi/p/12930562.html