数据类型
数字类型方法
python自带方法
round四舍六入五成偶 不是四舍五入
什么是五成偶?
五成偶的意思是,当下一个数字是偶数的时候实行四舍五入,当下一个数字是奇数的时候四舍六入
>>> print(round(5.1)) 5 >>> print(round(5.5)) 6 >>> print(round(4.5)) 4abs
取绝对值
math
在python中自带了一个math的类,我们可以使用这个类来调用很多的计算方法。
import math #调用math类ceil
ceil是用来向上取整用的
floorfloor和ceil相反,是向下取整用的
powpow是用来计算x的y次方 (x,y)
>>> print(pow(4,4)) 256
布尔类
bool() 函数用于将给定参数转换为布尔类型,如果没有参数,返回 False。
>>> print(bool(3 > 2)) True >>> print(bool(3 == 9/3)) True >>> print(bool(3 > 9/3)) False >>> print(bool("")) False
bool只是用来判断指定的值是否为真,也就是说只要数字不是0就为真
对于字符串、列表、元组、字典而言,只要非空它就是True
None永远表示False
字符串介绍及存储方式
字符串
字符串是python中最常用的数据类型之一
字符串是 不可变的序列数据类型
定义字符串
s1 = "hello world" s2 = 'hello world' s3 = "{'name':'age'}"
那么如果我们现在想要换行怎么办呢
我们可以使用"\n"来换行,也可以通过三个 双/单 引号来保留原本字符串的格式:
>>> s4 = """hello ... world""" >>> print(s4) hello world
存储方式
整型在内存中占一个字节,字符串不管中间有多少内容都要单独存储,而且是有序排列存储
字符串索引及切
在上述的存储方式中提到,字符串都是有序排列存储的。第一个字节的索引为0,第二个索引为1,第三个为2,一次排序。在字符串中空格也占一个字节。
通过下标来取值
>>> juzi = "hello python" >>> juzi[0] 'h' >>> juzi[1] 'e' >>> juzi[-1] 'n'
len方法可以获取字符串的长度
>>> juzi[len(juzi)-1] 'n'
那么我们执行以下代码的时候能够更改指定的字符串吗
>>> juzi[2] = "1"
答案是不能的,因为 字符串是不可变的序列数据类型
切片
在python中可以用切片的方法来指定多个字节。
>>> juzi[6:12] 'python'
注意这个范围是左闭右开结构的 也就是说包含7-12字节的东西
同时如果冒号后面不写数字那就是默认取到最后面
如果冒号前后都不写,那就是取全部的值
切片步长>>> juzi[::2] 'hlopto' >>> juzi[::-1] 'nohtyp olleh'
字符串方法
整数和字符串
int()将10进制字符串整数转为整数
str()将整数转换为字符串
字符串格式化
>>> name = "jerry" >>> age = 19 >>> print("%s年龄是%d"%(name,age)) jerry年龄是19 >>> print("{}年龄是{}".format(name,age)) jerry年龄是19 >>> print("{}年龄是{}".format(age,name)) 19年龄是jerry >>> print("{1}年龄是{0}".format(age,name)) jerry年龄是19
从上面的内容中,我们可以知道。可以使用%来占位,也可以使用{}表示索引。
如果format前面的花括号中没有指定索引,那就默认为0,1,2,3,......
还有一种更方便的写法,但是只适合python3.6以上的版本
>>> print(f'{name}的年龄是{age}') jerry的年龄是19
find
find用于在字符串中查找内容,并返回内容在字符串中的索引
>>> s1 = 'hello Python' >>> print(s1.find('P')) 6 >>> print(s1.find('l')) 2 >>> print(s1.find('1')) -1
当查找的内容在字符串中重复出现,那他就会返还最先找到的那个的位置
当查找的内容在字符串中没有找到,那他就会返还-1
rfind
和find的功能差不多,但是是从右边开始查找内容
index
和find的功能一样,但是如果查找的内容在字符串中没有找到,那他就会报错
replace
replace就是替换的意思,但是不改变原有的数据(浅复制)
>>> print(s1.replace("Python","Human")) hello Human
那如果要指定替换的次数呢
>>> s2 = "你是谁 你是谁 你是谁" >>> print(s2.replace("你是谁","请问")) 请问 请问 请问 >>> print(s2.replace("你是谁","请问",2)) 请问 请问 你是谁
可以发现,我们可以在后面指定替换的次数
split
分割字符串
>>> print(s2.split(" ")) ['你是谁', '你是谁', '你是谁']
startswith
startswith是用来判断字符串开头是否为指定的内容
>>> s3 = "Hello my bigmax" >>> print(s3.startswith("Hello")) True >>> print(s3.startswith("H")) True >>> print(s3.startswith("h")) False
endswith
endswith是用来判断字符串最后是否为指定的内容
非常的常用,可以用来判断文件的类型(.exe .jpg)
upper
将字符串全部转为大写
lower
将字符串全部转为小写
strip
用来去字符串头尾的空格 不可以去掉字符串中间的空格
isalpha
判断字符串是否是全字母
isdigit
判断字符串是否全部是数字
isalnum
判断是否是全数字或字母
join
将序列中的元素以指定的字符连接生成一个新的字符串
>>> li = ['1','2','3','4'] >>> s = ''.join(li) >>> print(s) 1234 >>> ss = "hello" >>> ss1 = ' '.join(ss) >>> print(ss1) h e l l o
join参数只能传入可迭代的对象,数字类型不是可迭代的对象