6.Python 数字和字符串
1.Python Number 数据类型用于存储数值。
数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间。
Python 支持四种不同的数值类型:
- 整型(Int) - 通常被称为是整型或整数,是正或负整数,不带小数点。
- 长整型(long integers) - 无限大小的整数,整数最后是一个大写或小写的L。
- 浮点型(floating point real values) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)
- 复数(complex numbers) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
数字类型的转换
1 int(x [,base ]) 将x转换为一个整数 2 long(x [,base ]) 将x转换为一个长整数 3 float(x ) 将x转换到一个浮点数 4 complex(real [,imag ]) 创建一个复数 5 str(x ) 将对象 x 转换为字符串 6 repr(x ) 将对象 x 转换为表达式字符串 7 eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象 8 tuple(s ) 将序列 s 转换为一个元组 9 list(s ) 将序列 s 转换为一个列表 10 chr(x ) 将一个整数转换为一个字符 11 unichr(x ) 将一个整数转换为Unicode字符 12 ord(x ) 将一个字符转换为它的整数值 13 hex(x ) 将一个整数转换为一个十六进制字符串 14 oct(x ) 将一个整数转换为一个八进制字符串
Python math 模块、cmath 模块
Python 中数学运算常用的函数基本都在 math 模块、cmath 模块中。
Python math 模块提供了许多对浮点数的数学运算函数。
Python cmath 模块包含了一些用于复数运算的函数。
cmath 模块的函数跟 math 模块函数基本一致,区别是 cmath 模块运算的是复数,math 模块运算的是数学运算。
1 函数 返回值 ( 描述 ) 2 abs(x) 返回数字的绝对值,如abs(-10) 返回 10 3 ceil(x) 返回数字的上入整数,如math.ceil(4.1) 返回 5 4 cmp(x, y) 比较x和y的数值 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1 5 exp(x) 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045 6 fabs(x) 返回数字的绝对值,如math.fabs(-10) 返回10.0 7 floor(x) 返回数字的下舍整数,如math.floor(4.9)返回 4 8 log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0 9 log10(x) 返回以10为基数的x的对数,如math.log10(100)返回 2.0 10 max(x1, x2,...) 返回给定参数的最大值,参数可以为序列。 11 min(x1, x2,...) 返回给定参数的最小值,参数可以为序列。 12 modf(x) 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。 13 pow(x, y) x**y 运算后的值。 14 round(x [,n]) 返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。 15 sqrt(x) 返回数字x的平方根
使用函数也很简单 只需导入该模块即可: import math
2.Python随机数函数的使用
随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。
Python包含以下常用随机数函数:
1 函数 描述 2 choice(seq) 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。 3 randrange ([start,] stop [,step]) 从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1 4 random() 随机生成下一个实数,它在[0,1)范围内。 5 seed([x]) 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。 6 shuffle(lst) 将序列的所有元素随机排序 7 uniform(x, y) 随机生成下一个实数,它在[x,y]范围内。
调用随机函数只需引入模块:import random
1 >>> import random 2 >>> random.choice(range(10)) 随机挑选0-9的一个数字 3 6 4 >>> random.random() 随机产生从0-1的一个数 5 0.43610051949868023 6 >>> random.uniform(0,100) 在0-100随机产生一个实数 7 89.15464495251244 8 >>>
3.Python字符串类型
字符串是程序语言当中最常见的数据类型之一,通常会涉及到字符串的处理也会是比较多,字符串的拼接,格式化(大小写,编码格式,分割替换,前后空格等处理),转义等等处理
3.1Python可以通过通过方括号[ ] 对字符串进行截取
示例如下
1 #!/usr/bin/python 2 3 var1 = 'Hello World!' 4 var2 = "Python Runoob" 5 6 print "var1[0]: ", var1[0] 结果 7 print "var2[1:5]: ", var2[1:5]
python字符串运算如下:
3.2在需要在字符中使用特殊字符时,python 用反斜杠 \ 转义字符。
如下表:
3.2Python字符串格式化
Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。
在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。
1 符号 描述 2 %c 格式化字符及其ASCII码 3 %s 格式化字符串 4 %d 格式化整数 5 %u 格式化无符号整型 6 %o 格式化无符号八进制数 7 %x 格式化无符号十六进制数 8 %X 格式化无符号十六进制数(大写) 9 %f 格式化浮点数字,可指定小数点后的精度 10 %e 用科学计数法格式化浮点数 11 %E 作用同%e,用科学计数法格式化浮点数 12 %g %f和%e的简写 13 %G %F 和 %E 的简写 14 %p 用十六进制数格式化变量的地址
Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。
基本语法是通过 {} 和 : 来代替以前的 % 。
format 函数可以接受不限个参数,位置可以不按顺序。
参考地址:https://www.runoob.com/python/att-string-format.html
3.3Python三引号
python中三引号可以将复杂的字符串进行复制:
python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
三引号的语法是一对连续的单引号或者双引号(通常都是成对的用)。
1 >>> hi = '''hi 2 there''' 3 >>> hi # repr() 4 'hi\nthere' 5 >>> print hi # str() 6 hi 7 there
三引号让程序员从引号和特殊字符串的泥潭里面解脱出来,自始至终保持一小块字符串的格式是所谓的WYSIWYG(所见即所得)格式的。
一个典型的用例是,当你需要一块HTML或者SQL时,这时当用三引号标记,使用传统的转义字符体系将十分费神。
3.4Python内部提供了很多很好用的内建函数
参考地址:https://www.runoob.com/python/python-strings.html 链接后半部
1. string.capitalize() 把字符串的第一个字符大写
2.utf-8解码 string.decode(encoding='UTF-8', errors='strict') 以 encoding 指定的编码格式解码 string,如果出错默认报一个 ValueError 的 异 常 , 除非 errors 指 定 的 是 'ignore' 或 者'replace'
3.utf-8编码 string.encode(encoding='UTF-8', errors='strict') 以 encoding 指定的编码格式编码 string,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'
4.查找 string.find(str, beg=0, end=len(string)) 检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1
5.string.isalpha() 如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
6.string.isnumeric() 如果 string 中只包含数字字符,则返回 True,否则返回 False
7.string.join(seq) 以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
8.string.lower() 转换 string 中所有大写字符为小写.
9.string.upper() 转换 string 中的小写字母为大写
10.string.swapcase() 翻转 string 中的大小写