概述
Python数据类型与运算
Python注重如何解决问题,而不是编程语言的语法和结构。它有高效率的高层数据结构,能简单有效地实现面向对象编程。Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,让它在大多数平台的许多领域中都是一个理想的脚本语言,特别适用于快速的应用开发。
基本语法常识:
1、代码注释方法:#单行注释 ‘’’ ‘’'段落注释;
2、用缩进表示分层:代码缩进4个空格表示分层,注意空格和Tab键不可混用;一般来说,行尾的:表示下一行缩进的开始;
3、语句断行:代码分成几行可以用“”来换行;一般的,系统会自动识别换行,如在一对括号中间或三引号之间均可换行;
4、print():在输出窗口中显示一些文本或结果;
5、使用转义符:在字符串中嵌入一个引号,可以在引号前加反斜杠,可以用不同的引号包围这个引号。
数据类型
Python有6种数据类型,分别是数字型Numbers、字符串型String、列表型List、元组型Tuple、集合型Sets和字典型Dictionaries。
数字型Numbers可以划分为整数型int、浮点型float、布尔型bool和复数型complex。
数字有整数(如2)、长整数(大一点的整数)、浮点数(如3.23和52.3E-3)和复数(如-5+4j)。
查看数据类型的方法:>>>type(变量名)
运算符与功能命令
1. 算数运算符
1、+
2、-
3、* 两数相乘或返回一个被重复若干次的字符串
4、/ (注意整型相除返回小数)
5、%
6、** 指数,a**b返回a的b次幂
7、// 取整除,返回上的整数部分
2. 比较运算符
1、==
2、!=
3、>
4、<
5、>=
6、<=
返回值为boolen(True或False)
3. 赋值运算符
1、= 从右侧操作数赋值到左侧操作数
2、+=
3、-=
4、*=
5、/=
6、%=
7、**=
8、//= 地板除,c//=a 相当于c=c//a
注意:没有自增++和自减–
在Python中不能将不同类型的加在一起,如数字和文本不能一起输出,需将数字转化为文本。
4. 常量与变量
1、常量有数值、字符、逻辑真假,如12、yy、”12“、true;
2、变量可以赋值,只能由数字、字母和下划线组成,不能以数字开头,变量区分大小写,不能包含空格和标点符号,以下划线开头的变量有特殊含义。
5. 字符串
1、字符串需用"“或’‘括起来,如’Quote me’,三引号’’’’’'可用于指示多行字符串;
2、转义符:用 ’ 表示单引号;
3、在一个字符串中,行末一个单独的 表示字符串在下一行继续;
4、自然字符串,指示不需要转义符那样特别处理,在字符串前加前缀r或R表示遇到 不转义,如a=r"asd n”;
5、Unicode文本: u"a Unicode string";
6、字符串是不可变的:一旦创造一个字符串,就不去改变它;
7、字符串可以通过 + 连在一起,或 * 重复。
6. 字符串索引与切片
1、定义字符串变量并赋值: str = "Hello my friend"
。字符串是一个整体,不能直接修改字符串但能读出某一部分;
2、字符串的索引:从左往右从0开始依次增加,从右往左从-1开始依次减少;
3、字符串的切片:str[1:4]
左闭右开,且两个索引都可以省略;
切片扩展形式:str[I:J:K]
从I到J-1,每隔K个元素索引一次,如果K为负数就从右向左索引;
4、字符串包含判断操作符为 in ,not in :"He" not in str
返回值为boolen,字符串查找方法:str.find('o')
返回字符串索引;
5、ord函数将字符转化为ASC||值,chr函数将数字转化为字符:print(ord('a')); print(chr(97));
6、处理字符串的内置函数:
len(str)
串长度
max('abcdxyz')
寻找字符串中最大的字符
min('asdfghj")
寻找字符串中最小的字符
7、string的转换
int(str)
变成整型,如int(“12”)的结果为12
8、string模块提供的方法
S.find(substring,[start,[,end]]); #可指范围查找子串,返回索引值,否则返回-1
S.rfind(substring,[start,[,end]]); #反向查找
S.index(substring,[start,[,end]]); #同find,找不到会产生ValueError异常
S.rindex(substring,[start,[,end]]);#反向查找
S.count(substring,[start,[,end]]); #返回找到字串的个数
S.capitalize(); #首字母大写
S.lower(); #转小写
S.upper(); #转大写
S.swapcase(); #大小写互换
S.split(); #将string转换为list,默认以空格划分,也可以按照指定字符切分
7. 输入和输出
1、print:可以有多个输出,用逗号分隔;
2、input:将用户输入的内容以字符串的形式返回;可以用int取整函数获得数字。
8. 原始字符串
d=r"c:news"
r表示引号后的东西按原样输出。
9. range
range(n)表示一个从0到n-1的长度为n的序列,也可以定义起始点(range(1,4)表示1、2、3、4),可以定义步长(range(1,30,3)从1开始到30结束、步长为3:1、4、7、…28)
默认情况下,range()起始值是0。
在numpy模块中,arange()类似range函数,需导入模块
import numpy
numpy.arange(n)
10. 元组、列表、字典、集合
1、tuple元组
元组的概念类似于向量,元组的元素不能修改,写在小括号 ( ) 里用逗号隔开,元组中的元素类型可以不相同。
a = (1991,2014,'physics','math')
print(a,type(a),len(a))
tup = (1,2,3,4,5,6)
print(tup[0],tup[1:5]) # 1 (2,3,4,5)
tup[0]=11 # 报错,该操作非法,不可以修改tuple的元素,但tuple可包含可变对象如list
tup1 = (20,) # (2)是数字2,整型;(20,)是元组,不可添加和删除
user=('01','02','03','04')
user =( user,'05') # 元组的添加
a,b,c,d = uder # 元组的解包,变量个数等于元组成都
元组内置函数:
len(tuple): 计算元组元素的个数
max(tuple): 返回元组中元素的最大值
min(tuple): 返回元组中元素的最小值
tuple(list): 将列表转化为元组
2、list列表
用方括号 [ ] 标识,列表中元素可以不同。
list(range(1,10,5) # [1,3,5,7,9]
a = ["I","you","he",5]
a[1:3] # ['you','he']
a[1] = 'she' # 列表可修改
a+[6,7,8] # 列表支持串联操作
a = [1,2,4,5]
a[2:2]=3 # a[n:n]=q 在a中的n位置插入一个q a变成了[1,2,3,4,5]
word = 'hello' # 将字符串转化成列表
list(word) # ['h','e','l','l','o']
list加元素
L.append(var)
追加元素,可以追加字符串、数、list等;append函数没有返回值,不能写L=L.appendXXX
L.extend(list)
合并两个列表,把list追加到L列表中,不能追加单个元素。
L.insert(index,var)
在index位置插入var元素
list删元素
L.pop(index)
从list删除元素,并返回被删除的index位置元素,只能删一个。默认删除最后一个。
del L[index]
删除指定索引的元素。
del L[m:n]
删除指定索引范围的元素。
L.remove(var)
删除第一次出现的var元素。
list操作符:+,-,*。
list的索引:0,-1,[::]表示取全部索引。[::x]表示步长为x。[::-1]作用同reverse函数。
list排序
L.sort()
会改变列表本身,让其中的元素按一定顺序排列,默认从小到大,返回值为空,需用sorted函数
L.sort(reverse=True)
从大到小
sorted(a)
直接获取列表排序的一个副本,可用于任何可迭代对象,不改变原列表a
a = [1,2,3,4,5,6,7]
b =a[:]
副本b与a是两个东西,复制列表
c = a
# c是a的一个标签,不是真复制,贴了标签
L.reverse()
倒序排列,从大到小
list(reversed(L)
reversed返回的是一个迭代器,可以用list转化为列表
其他方法
L.count(var)
返回var元素在列表中出现的个数
L.index(var)
返回第一个var元素的位置
3、dict字典
字典是一种映射类型(mapping type),是一个无序的”键:值“对集合,每一个元素都是pair,包括key和value。{key:value} key是Integer或String类型,value是任意类型。key必须用不可变类型,在同一个字典中,关键字互不相同。
dic = {} #创建一个空字典
dic_tel ={'Jack':1557,'TOM':1320,'ROSE':1886} # 创建一个字典
# 用遍历的方法创建一个字典
name =["Ben","Jone","Jhon","Jerry","Anny"]
tel = [6601,6602,6603,6604,6605]
Tellbook={}
for i in range(len(name))
d1="{}".format(name[i])
d2="{}".format(tel[i])
Tellbook[d1]=d2
Tellbook['Wang'] = 3 # 给键赋值,若键不存在,则直接创建
del Tellbook['Wong'] # 删除一个键值对
Tellbook['Ben'] #通过key查询对应的值
list(Tellbook.keys()) # 返回所有key组成的list
sorted(Tellbook.keys()) # 按key对字典排序
'Ben' in Tellbook # 成员测试
dict()函数直接从键值对构造字典;
.items方法
字典的“.”方法
D.get(key,0)
同dict[key]
D.keys()
返回字典键的列表
D.values()
返回字典值的列表
D.items()
将字典转化为元组作为元素的一个列表,返回一个列表,列表的每个元素都是一个键和值组成的元组。
D.update(dict2)
合并字典,将dict2加入当前字典中
D.pop(key)
删除指定键值对
D.popitem()
没有参数则随机删除一个键值对
D.clear()
清空字典
D.copy()
拷贝字典
Dict = dict.copy()
克隆(浅拷贝)
字典排序
sorted(dict.items(),key = lambda e:e[1], reverse = True)
按值排序
sorted(dict.items(),key = lambda e:e[0],reverse = True)
按键排序
4、set集合
set是一个无序、不重复元素的集,set的基本功能是去重,可以用大括号函数 { } 或set()函数创建set集合。
a = set("abracadabra') # a:{'b','d','r','a','c'}
b = set('alacazam') # b:{'l','m','z','a','c'}
a-b #{'b','d','r') 从a中去除b的元素
a|b #{'l','r','a','c','z','b','m','d'} a与b的并集
a&b #{'a','c'} 交集
a^b #{'l','r','z','m','b','d'} 交集的补集,对称差
set((2,2,2,4,4) #{2,4} 集合用于去重
11. 格式化输出
1、%格式化输出
输出字符串:print("His name is %s"%("Aviad"))
输出整数:print("He is %d years old"%(25))
输出浮点数:print("HIs height is %f m"%(1.83))
输出指定位数浮点数:print("HIs height is %.2f m"%(1.83))
输出指定占位符的宽度:print("Name:%10s Age:%8d Height:%8.2f"%("Aviad",25,1.83))
输出指定占位符的宽度(左对齐):print("Name:%-10s Age:%-8d Height:%-8.2f"%("Aviad",25,1.83))
指定占位符0或空格:print("Name:%-10s Age:%08d Height:%08.2f"%("Aviad",25,1.83))
2、format格式化输出
str.format用 { } 和 . 替代%。
'{0},{1}'.format('yubg',39) # 0和1表示位置索引
'{},{}'.format('yubg',39) # 位置索引可以为空
'{1},{0},{1}'.format('yubg',39) # 可以接收多个无序参数
'{name},{age}'.format(age=39,name='yubg') # 关键字参数
前面的‘’是格式限定符,可以填充与对齐,语法为{:}.^居中,>右对齐,<左对齐,后面加宽度。:后面加填充的字符(只能有一个,缺省时默认空格填充)。
'{:>8}'.format('189') # ' 189'默认空格占位,右对齐
'{:0>8}'.format('189') # '00000189'
'{:a<8}'.format('189') # '189aaaaa'
'{:*^7}'.format('189') # '**189**'
# 精度与类型f
'{:.2f}'.format('321.33345') # '323.33'
12. strip、split
strip
strip:去掉字符串两边的空格
lstrip:取掉字符串左边的空格
rstrip:取掉字符串右边的空格
split
对字符串进行分割,变成一个list
str = ('www.i-nuc.com')
按照某个字符进行分割:str_split = str.split('.') # ['www','i-nuc','com']
按照某个字符分割,且分割n次:str_split = str.split('.',1) # ['www','i-nuc.com']
按照某个字符(或字符串)分割,且分割n次,将分割完成的字符串赋给新的n+1个变量:str1, str2 = str.split('.',1)
13. divmod()
返回一个tuple包括商和余数。
>>>t = divmod(7,3) # (被除数,除数)
>>>t
(2,1) # (商,余数)
14. join()
join是split的逆运算。
join函数把一个list或tuple中所有的元素按照定义的分隔符(sep)连起来,仅限于元素是字符型。(元素是数字型将报错 expected str instance)
'sep'.join(seq)
>>> a = ['a','b','c']
>>> sep = '|'
>>> x = "|".join(a)
>>> x
'a|b|c'
最后
以上就是美好大树为你收集整理的Python数据分析学习笔记1Python数据类型与运算的全部内容,希望文章能够帮你解决Python数据分析学习笔记1Python数据类型与运算所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复