python3数据类型学习

python3的数据类型

python一共有8中数据类型,分别是:数字(number)、字符串(string)、布尔值(boolean)、列表(list)、元组(tuple)、字典(dict)、集合(set)、空值(None)

一、数字类型

数字类型分为:整型(int)、浮点型(float)、复数

1. python内置数学函数

abs(x)--返回数字x的绝对值    ⚠️参数不能为空

>>> abs()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: abs() takes exactly one argument (0 given)
>>> abs(1)
1
>>> abs(-1)
1

 max(x, y[, z, ...])--返回两个及以上参数中的最大值    ⚠️参数必须是一个可迭代对象

>>> max(1,-1)
1
>>> max(1,-1,-0.2,123)
123
>>> max(1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
>>> max("abc")
'c'
>>> max([1,2,3])
3
>>> max({"a":1,"b":2,"c":3})
'c'
>>> max((1,2,3))
3
>>>

min(x, y [, z, ...])--返回两个及以上参数中的最小值   

pow(x, y)--返回x的y次方

>>> pow(2,5)
32
>>> pow(2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: pow expected at least 2 arguments, got 1
>>> 

round(x[, n])--返回x的四舍五入值,有n时表示四舍五入到小数点后n位

>>> round(1.27)
1
>>> round(1.27,1)
1.3
>>> round(1.27,-1)
0.0

二、字符串类型

1. 什么是字符串?

  被英文单引号' '或双引号" "括起来的任意文本。

2. 字符串运算

  字符串拼接(加法):str1 + str2

>>> str1 = '123'
>>> str2 = "abc"
>>> print(str1+str2)
123abc
>>>  

  字符串重复(乘法):x * str

>>> str = "Banzhuan "
>>> print(3 * str)
Banzhuan Banzhuan Banzhuan 
>>>  

  访问字符串中的元素:通过下标(从0开始)来访问字符串中的某个字符,但不能通过下标来改变原字符串

>>> str = "Banzhuanzhuan"
>>> print(str[0])
B
>>> str[0] = "b"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
>>> 

  截取字符串部分元素:切片--str[开始下标 : 结束下班 : 步长]  范围是一个左闭右开区间,不写步长时,默认步长为1

>>> str = '0123456789abcdefghijklmn'
>>> print(str[0:9:1])
012345678
>>> print(str[0:9])
012345678
>>> print(str[:9])
012345678
>>> print(str[:])
0123456789abcdefghijklmn
>>> print(str[1:])
123456789abcdefghijklmn
>>> print(str[3:10])
3456789
>>> print(str[3:18:2])
3579bdfh
>>>

 

  成员运算:in  not in

>>> str = "da jia yiqi Banzhuan"
>>> 'a' in str
True
>>> 'abc' in str
False
>>> 'abc' not in str
True
>>> "Ban" in str
True
>>> "ban" in str
False
>>> 

  比较大小:从第一个字符开始比较,谁的ASCII码值大谁就大,如果相等则比较下一个字符的ASCII码值。比较运算符有:>、>=、<、<=、==、!=

>>> str1 = "abcd"
>>> str2 = "abcde"
>>> str3 = "abc"
>>> str4 = "abcd"
>>> str1 > str2
False
>>> str1 < str2
True
>>> str1 < str3
False
>>> str1 = str4  # 赋值运算符,而不是比较运算符
>>> str1 == str4
True
>>>

 

3. 格式化输出

打印多个值时,原始打印语句:print("num1=","num2=","num3=", num1,num2, num3)较为麻烦,使用占位符的方式更便于理解,格式print("num=%d, str=%s, f=%.3f" %(num, str, f))

常用占位符:%d整数占位符   %s字符串占位符  %f小数占位符(默认小数点后6位,多余位数四舍五入,少于位数补0,指定精度到小数点后几位%.nf,n为数字)

>>> num = 555
>>> str = "banzhuan"
>>> f = 1.23456
>>> print("num=%d,str=%s,f=%.2f" %(num,str,f))
num=555,str=banzhuan,f=1.23
>>> print("num=%d str=%s f=%.2f" %(num,str,f))
num=555 str=banzhuan f=1.23
>>> 

❗️也可以调用字符串的format方法进行格式化输出

4. 原始字符串--用于字符串中有很多需要转义的字符的情况

如:r"\\\\\\"

5. 常用字符串方法🌟

len(str)--返回字符串str的长度(字符个数而非字节数)

>>> str = "banzhuan together"
>>> print(len(str))
17
>>> 

count(str[, start][, end])--

find(str[, start][, end])--

rfind(str[, start][, end])--

index(str[, start][, end])--

rindex(str[, start][, end])--

strip()--

lstrip()--

rstrip()--

split(str[, num])--

splitlines()--

join(seq)--

replace(oldstr, newstr[, count])--

lower()--将字符串中的大写字母转换成小写字母,并返回该字符串

>>> str = "BANZHUAN"
>>> print(str.lower())
banzhuan
>>> str = "BaNZhUaN"
>>> print(str.lower())
banzhuan
>>> 

upper()--将字符串中的小写字母转换成大写字母,并返回该字符串

>>> str = "banzhuan together"
>>> print(str.upper())
BANZHUAN TOGETHER
>>> str = "BaNZhUaN"
>>> print(str.upper())
BANZHUAN
>>> 

 swapcase()--将字符串中的小写字母转换成大写字母,大写字母转换成小写字母,并返回该字符串

>>> str = "BaN ZhUaN tOgEtHeR"
>>> print(str.swapcase())
bAn zHuAn ToGeThEr
>>> 

title()--将字符串中每个单词的首字母大写,并返回该字符串

capitalize()--将字符串首字母大写,并返回该字符串

>>> str = "ban zhuan together"
>>> print(str.capitalize())
Ban zhuan together
>>> print(str.title())
Ban Zhuan Together
>>> 

center(width[, fillchar])--返回长度为width的字符串:原字符串居中,左右两侧由fillchar指定的字符填充,不指定时默认为空格

>>> str = "banzhuan"
>>> print(str.center(20,"*"))
******banzhuan******
>>> print(str.center(2,"*"))
banzhuan
>>> print(str.center(25))
         banzhuan        
>>> print(str.center(25,"*"))
*********banzhuan********
>>> 

ljust(width[, fillchar])

rjust(width[, fillchar])

zjust(width)

max()--

min()--

maketrans(oldstr, newstr)--

translate(strTable)--

eval(str)--

三、布尔类型

布尔值:True  False

四、列表类型

1. 什么列表?

  用[]表示,可以存放数字、字符串、列表、元组、字典

2. 如何创建列表?

  a: listname = [元素1, 元素2, 元素3...元素n]

  b: 列表生成式:list(range(n, m))

         [m, for m in "xxxxx"]

         [m, for m in range(n, m)]

         [m+n, for m in ["1","2","3"] for n in "123"]

         [n*n, for n in rang(1,11) if n%3 == 0]

3. 如何访问列表元素?

  取值:列表名[元素下标]

  替换:列表名[元素下标] = 值

4. 常用列表方法:

append(x) --- 在列表末尾追加一个新元素,每调用一次append(),原列表新增一个元素,这个元素可以是数字、字符串、列表、元组、字典

extend(x) --- 一次性在列表末尾追加多个元素,extend()参数必须是一个可迭代对象,如果是字典,则会将字典的key作为元组追加进原列表

insert(i, x) --- 在列表的i号位置上插入元素x

pop() --- 不带参数时,表示删除列表最后一个元素;带参数时,表示删除参数指定位置上的元素

remove(x) --- 移除列表元素x,若有多个x,则移除第一个;不指定x时,会报错

clear() --- 清空列表元素

index(x [, start] [, end]) --- 返回指定区间[start, end]中第一个匹配到的元素x的索引

sort() --- 将列表元素排序,默认是升序

reverse() --- 将列表元素倒叙排列

len() --- 计算列表长度

count(x) --- 返回元素在列表中出现的次数

五、元组数据类型

1. 什么是元组?

  与列表类似,也是用来存储数据的,用()将元素扩起来,元组元素可以是数字、字符串、元组、列表、字典

2. 怎么创建一个元组?

  空元组:()

  只有一个元素的元组:(1,)

  有多个元素的元组:(1,"tuple",[1,2,3],{"key": "value"})

3. 元组元素访问

  取值:元组名[下标]

  替换:⚠️元组元素不能改变,故无此操作

4. 元组常用方法

len() --- 计算元组长度

tuple(list) --- 将列表转换成元组

max() --- 返回元组元素中的最大值

min() --- 返回元组元素中的最小值

六、字典数据类型

1. 什么是字典?

  采用键-值对的形式存储数据的数据类型。字典的键必须是不可变类型且键必须唯一,值可以是任何类型

2. 访问字典元素

  取值:1⃣️ 字典名[key] --- 当key不存在时,报错KeyError

     2⃣️ get(key) --- 当key不存在时,返回None

     3⃣️ setdefault(key, defaultValue)  --- key存在时,返回对应的value;当key不存在时,将key,defaultValue存进字典,并返回defaultValue

  替换:字典名[key] = value   当key存在时,替换key对应的value,不存在时,在字典中存入key-value

3. 删除字典元素

  pop(key) --- 删除指定键值对,并返回key对应的value

  del 字典名[key] --- 删除指定键值对

  del 字典名 --- 删除字典

4. 字典常用方法

  values() --- 获取字典中存储的所有value,并以列表的形式返回

  keys() --- 获取字典中所有的key,并以列表的形式返回

  items() --- 取出字典中存储的所有键值对,并返回这些键值对元组组成的列表

  len(dict) --- 计算字典的长度

5. 字典的遍历

  for key in dict:

    print(key, dict[key])

  for value in dict.values():

    print(value)

  for key,value in dict.items():

    print(key, value)

  for i, value in enumerate(dict):

    print(i, value)

七、集合数据类型

1. 什么是集合?

  与字典类似,用于存储数据无序的、无重复元素的集合。

2. set有哪些特点?

  1⃣️ 类似于dict,但存储的元素只是一组key,无value

  2⃣️ 无序、无重复元素

  3⃣️ 存储的元素必须是不可变类型

3. set的用途?

  主要用于list、tuple的去重

4. 如何创建一个set

  1⃣️ 首先需要一个列表/元组/字典作为输入集合

  2⃣️ 调用set()方法,如:set([1,2,3])  set((1,2,3,4))   set({1:1, 2:2, 3:3})   ⚠️字典作为输入集合时,集合中存储的只是字典的keys

5. set操作有哪些?

  1⃣️ 向set中添加元素:add(x) 和 update(seq) --- add函数向set中添加一个元素x,x必须是不可变类型;update函数一次性向set中添加多个元素,seq必须是可迭代的

  2⃣️ 删除set中元素:remove(x)  --- 删除set中指定元素

  3⃣️ 访问set中元素:

    for element in set:

      print(element)

    for i,element in enumerate(set):

      print(i, element)

6. set运算:交集 &   并集 |

 

posted @ 2019-11-15 15:57  潘潘达  阅读(230)  评论(0编辑  收藏  举报