好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

3.数据类型

数据类型

数字类型方法

python自带方法

round

四舍六入五成偶 不是四舍五入

什么是五成偶?

五成偶的意思是,当下一个数字是偶数的时候实行四舍五入,当下一个数字是奇数的时候四舍六入

 >>> print(round(5.1))
5
>>> print(round(5.5))
6
>>> print(round(4.5))
4 
abs

取绝对值

math

在python中自带了一个math的类,我们可以使用这个类来调用很多的计算方法。

 import math     #调用math类 
ceil

ceil是用来向上取整用的

floor

floor和ceil相反,是向下取整用的

pow

pow是用来计算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参数只能传入可迭代的对象,数字类型不是可迭代的对象

查看更多关于3.数据类型的详细内容...

  阅读:38次