基本数据类型
数字(number):
整型(整数):
-
用关键字
int
表示(即英文单词 integer 的简写),包括:正整数、零和负整数。整型数全部由数字构成,不包括小数部分。与数学中的整数概念一致,没有取值范围限制。 -
整数类型有4种进制表示:十进制,二进制,八进制和十六进制。默认情况,整数采用十进制,其他进制需要增加引导符号
-
示例
-
-
不同进制的整数之间可以直接运算
浮点型(小数):
-
浮点型用关键字
float
表示,是由整数、小数点和小数构成的数字。eg: 1010 和 1010.0
整型与浮点型的相互转换:
-
通常来说,两个数字类型的数字进行算术运算时,运算后生成结果为最宽类型:
-
两个整数运算,结果为整数(除法运算“/”除外,其运算结果为小数)。 两个浮点数运算,结果为浮点数。 整数和浮点数运算,结果为浮点数。
-
-
通过内置的数字类型转换函数可以显式地在数字类型之间进行转换:
-
int(x)
,将 x 转换为整数,x 可以是浮点数或字符串。 -
float(x)
,将 x 转换为浮点数,x 可以是整数或字符串。 -
int(x)
会去掉浮点数的小数部分,如果想要四舍五入应使用round(x)
函数
-
-
a = 1016.8 b = 100 print (int(a)) #结果为:1016 print (round(a)) #结果为:1017 print (float(b)) #结果为:100.0=
赋值运算符
-
在 Python 中,使用
=
可以给变量赋值 -
在算术运算时,为了简化代码的编写,
Python
还提供了一系列的 与 算术运算符 对应的 赋值运算符 -
注意:赋值运算符中间不能使用空格
字符串(string):
-
字符串需要使用成对的单引号或双引号括起来,单引号和双引号的字符串是等效的;python 中还允许使用三引号(“”" 或者 ‘’’ )或双引号创建跨越多行的字符串,这种字符串中可以包含换行符、制表符及其他特殊字符。
-
字符串输出时会去掉最外面一层引号,所以若想在输出的字符串中包含某个引号,则输出语句包含单引号,最外层使用双引号;
-
a = '你好世界!' print(a) # 结果为: 你好世界! b = '"你好世界!"' print (b) # 结果为: "你好世界!"
-
-
如果一个三引号字符串没有被赋值给变量,它会被python解释器默认为注释,反之,会被当做字符串常量
-
a = ''' 大家好:\n我是\t爱学习\t的学生! ''' print(a) '''结果为 : 大家好: 我是 爱学习 的学生! '''
-
-
字符串是序列数据类型,可以为每个字符分配一个数字来指代这个元素的位置,即可以使用索引和切片。同样的也支持双向索引。
字符串的索引、切片
-
str = 'pyhon is a wonderful language!' # 正向索引(从0开始)、反向索引(从-1开始) a, b, c = str[0], str[10], str[-1] print(a, '-', b, '-', c) # 此时意外发现b的位置是一个空格,别以为是bug #结果:p - - ! # 切片[start:end:step] str_1, str_2, str_3 = str[1:5], str[-5:-1], str[3:-9] print(str_1, '-', str_2, '-', str_3) #结果:yhon - uage - on is a wonderful # 带有步长的切片(省略start意味着从0开始,省略end则到末尾结束,省略step则步长默认为1) str_4 = str[1::-1] # 步长为-1则默认倒着往前跳 str_5 = str[::-2] # 步长的大小决定由哪些字符被切片 print(str_4, '-', str_5) #结果:yp - !gunllfenwas oy
字符串的查找、判断组合等基本操作
-
统计字符串中某个字符的次数
-
str.count('q')
-
-
str.find('子字符串B',5,13)
-
查找字符串A中是否包含子字符串B,包含则返回B在A中第一次出现的位置索引值,否则返回-1。6的位置代表查找开始位置的索引值,13为查找结束位置的索引值。[从左开始,前闭后开]
-
str = 'bigbigbigboat' print(str.find('b',5))#从字符串左边索引为5的字符开始查找,不填结束位默认到最后一位
-
-
str.rfind('子字符串B',5,13)
-
功能同
str.find
,唯一区别:从右查找
-
-
str.index('子字符串B',5,13)
-
查找字符串 A 中是否包含子字符串B,如果包含则返回 B 在 A中第一次出现的索引值,B 不在A中则会报错
-
-
str.starstwith('子字符串B')
-
检查 A是否以指定字符串B开头,如果是则返回 True,否则返回 False
-
-
str.endswith('子字符串B')
-
检查 A是否以指定字符串B结尾,如果是则返回 True,否则返回 False
-
-
首字母大写 capitalize ,会将首字母大写,其余字母全部小写
-
每个单词首字母大写 title ,以特殊字符为判断字符标准
-
大小写反转
swapcase
-
去除两边空格 strip
-
是否为纯字母
str.isalpha()
-
是否为纯数字
str.isdecimal()
,str.isdigit()
-
是否为字母和数字组合
str.isalnum()
-
-
join 将一个可迭代对象转化为字符串
字符串的替换
-
str.replace(oldStr,newStr,max)
-
oldStr
为将被替换的子字符串,newStr
为新字符串, max为替换最大次数 -
str = "贝多芬是世界闻名的航海家" print(str.replace("贝多芬", "哥伦布")) ''' 哥伦布是世界闻名的航海家 '''
-
字符串拆分函数(分割)
-
str.split(sep=" ", num)
通过指定分隔符对字符串进行切片,返回一个字符串列表-
sep
为分隔符,默认为空字符,包含空格、换行(\n)、制表符(\t)等。num
为分割次数 -
str = "Every cloud has a silver lining" print(str.split()) # 使用默认分隔符拆分字符串 print(str.split(" ", 3)) # 使用默认分隔符拆分字符串为 4 个子字符串 ''' ['Every', 'cloud', 'has', 'a', 'silver', 'lining'] ['Every', 'cloud', 'has', 'a silver lining'] '''
-
格式化输出
实例:购物小票
products=[["iphone",6888],["MacPro",14800],["coffee",32],["abc",2499],["Book",60],["Nike",699],["MacPro",45600],["coffee",432],["abc",244499],["Book",6230],["Nike",61299],["MacPro",14800],["coffee",32],["abc",2499],["Book",60],["Nike",699]] print("-"*10+"商品列表"+"-"*10) i=0 for product in products: print('{:<6}\t{:<10}\t{:<10}'.format(str(i), product[0], str(product[1]))) i = i+1
字符串运算
-
1.两个不同长度的字符串进行比较时,不是长的字符串就一定”大”。
2.当字符串有空格时,空格也参加比较。
3.大写字母和小写字母的ASCII代码值是有区别的,所以,”yes”>”YEs”。
4.当字符串全部用英文字母的大写(或小写)组成时,字符串的大小顺序和它们在字典中的顺序相同。
5.由汉字组成的字符串可以参加比较。如”李红”<”王军”。它们的大小实际是由其拼音构成的字符串的大小来决定的。上例即:
”LIHONG”
<”WANGJUN”
。# 字符串运算 str_1 = "my name is : " + "mark" # + 运算符两边必须都是字符串,否则报错 str_2 = "love " * 3 str_3 = 'c' in 'cat' str_4 = 'quite' > 'quiet' print(str_1, str_2, str_3, str_4)
列表(list):
什么是列表?
-
List是python中的一种数据类型,它由一组有序的元素组成。支持字符、数字、字符串甚至也可以包含列表(列表中有列表,嵌套),元素间用逗号进行分隔。列表用[]进行标识。
-
创建一个列表
-
user_lis = list() user_lis = []
-
列表的索引
-
从左到右:从0开始代表第一个数值, 1代表第二个数值 往后以此类推
-
从右到左:从-1开始代表最后一个值,-2代表倒数第二个值 往前以此类推
列表的新增
-
user_lis.insert(index,obj)
在指定位置(index)插入(obj) -
user_lis.append(obj)
在列表末尾追加 -
user_lis.entxend(lis/obj)
,循环追加,参数为列表,将另一个列表合并到列表;参数为变量名,将变量的值合并到列表,并拆分成为列表的元素
列表的删除
-
user_lis.pop(index)
参数为索引,返回该索引的值,并从列表删除该元素,找不到会返回-1 -
user_lis.remove(obj)
参数为要删除的元素,删除第一次出现的该元素,找不到会报错
列表的修改
-
user_lis[index]='obj'
通过索引修改
列表的其他基本操作
-
user_lis.sort()
按元素升序排序,且会改变原列表的顺序 ,加入参数:revers = True后,降序排序 -
user_lis.reverse()
列表反转(对源列表进行操作),也可以通过切片(得到一个新的列表,源列表不变) -
user_lis.count(obj)
统计指定元素出现的次数 -
user_lis.index(obj)
该元素的位置,无则抛异常
字典(dic
):
什么是字典?
-
基本数据格式:{'键1':'值','键2':'值'}
-
Python字典是一种可变容器模型,且可存储任意类型对象,由成对的键值组成,键值对间用英文逗号间隔,键值间用英文引号间隔,字典包含在花括号{}内。
字典的创建:
-
字典名 = {'键':值"}
-
字典名 = dict()
,创建空字典
字典的查看:
-
借助输出语句print(),查看所有的值:
print(字典名称.values())
-
借助输出语句print(),查看所有的键:
print(字典名称.keys())
-
借助输出语句print(),查看所有键值对:
print(字典名称.iteams())
-
借助输出语句print(),通过键查看值:
print(字典名称['键'])
-
sg = dic1.get('键','查不到的提示语')
-
-
利用for循环展示字典内容:
-
user_dic = {'name':'baiyun','age':'20'} for i in user_dic.keys(): print(i) for k,v in user_dic.iteams(): print()
-
字典的新增(修改):
-
字典名称['键'] = 值
-
键存在是修改,不存在即新增
字典的删除:
-
通过键删除键值对,字典名.pop('键')
-
清空字典,字典名.clear()
元组(tuple):
什么是元组?
-
元组可以看做是不可变的列表,通常情况下,元组用于保存无需修改的内容。
元组的创建:
-
a = ('你好',)
,当创建的元组中只有一个字符串类型的元素时,该元素后面必须要加一个逗号,
,否则 Python 解释器会将它视为字符串。 -
a = tuple('你好','世界')
集合(set):
什么是集合?
-
Python中的集合(set)与数学中的集合概念类似 也是用于保存不重复的元素。它有可变集合(set)和不可变集合(
frozenset
)两种。 在形式上,集合的所有元素都放在一对大括号中,两个相邻元素间使用逗号“”分隔。 集合最好的应用就是去重,因为集合中的每个元素都是唯一的。
集合的创建:
-
set_1 = {1,2,3,4}
-
强制转换,
a = [1,2,3,4] print(set(a))
集合的新增:
-
通过
set_1.update(user_lis)
方法添加一个序列或序列中的某值 -
通过
set_1.add(obj)
方法在末尾追加一个值
集合的删除:
-
del set_1
删除整个集合 -
set_1.clear()
清空集合 -
set_1.discard(obj)
丢弃某个元素 -
set_1.remove(obj)
删除指定元素 -
set_1.pop()
弹出第一个元素
集合的交集:
-
符号:&
-
借助
print()
输出两集合的交集,print(set_1&set_2)
集合的并集:
-
符号:|
-
借助
print()
输出两集合的并集,print(set_1|set_2)
集合的差集:
-
set_1 - set_2
删除两个集合都有的元素,保留集合1
特有的元素。 -
set_2 - set_1
删除两个集合都有的元素,保留集合2
特有的元素。 -
顺序很重要,谁在前就保留谁特有的元素