基本数据类型与内置方法
整型
基本方法
用途:一般用于定义整数,年龄,qq
定义方式:
age=18 and age=int(18)
常用方法:
数字计算:
进制之间的转换:
其他进制转10进制:
int('1100',2) 第二个参数是第一个参数的进制
二进制转十进制:0,1
110 1*2*2+1*2+0*1=6
int('1100',2)
八进制转十进制:0-7
123 1*8*8+2*8+3*1=83
int('83',8)
十六进制转十进制:0-9,a-f
321 3*16*16+2*16+1*1=801
int('801',16)
10进制转其他进制:0-9
十进制转二进制:
print(bin(108)) 0b1101100 0b:指代二进制
十进制转八进制:
print(oct(83)) 0o123 0o:指代八进制
十进制转十六进制:
print(hex(1000)) 0x3e8 0x:指代十六进制
类型总结:
什么是有序的:有索引的类型都是有序的
什么是可变和不可变: 值变id不变,是可变类型
值变id变,是不可变类型
整型是无序的,不可变的,存一个值
浮点型
用途:用于记录小数,身高,体重和薪资等
定义方法: height=1.0 height = float(1.0)
常用方法:
数字计算
s1='1' print(float(s1))
1.0
s1 = '1.0' a=int(s1) print(a) Traceback (most recent call last): File "F:/python_work/python_oldboyedu_learn/Oldboyedu_python/python_base.py", line 515, in <module> a=int(s1) ValueError: invalid literal for int() with base 10: '1.0'
s1 = '1.0' s1 = float(s1) a = int(s1) print(a) 1
类型总结: 无序,不可变,存一个值
字符串
用途:用于存储一些描述性信息,名字
定义方式:
第一种:s1='a'
第二种:s2=''b''
第三种:s3='''c'''
s4=''''''d'''''''''
无区别,不能混用
补充:小写的r+字符串,代表转义
# 因为反斜杠是转义符,所以两个"\"就表示一个反斜杠符号
str1 = r'C:UsersPublicDesktopQQ音乐.lnk' print(str1.split('\')) ['C:', 'Users', 'Public', 'Desktop', 'QQ音乐.lnk']
常用方法:
1.索引取值:(正向,反向取都可以)只能取不能存
s1 = 'hello world' print(s1[4]) # 正向取值 print(s1[-7]) # 反向取值 o o
2.索引切片:
切片:截取字符串中的小段字符串
s1 = 'hello world' # print(s1[4]) # 正向取值 # print(s1[-7]) # 反向取值 print(s1[2:5]) print(s1[4:]) print(s1[:5]) print(s1[0:-2:2]) print(s1[::-1]) # 反向打印 llo o world hello hlowr dlrow olleh
3.成员运算:in ,not in
print('o' in s1) print('o' not in s1)
True
False
4.strip()
input无论接收的是什么类型,一定返回的是字符串,去除字符串内的左右两边的空格,中间不算
s1 = ' hello world '
print(len(s1))
print(s1.strip())
print(len(s1.strip()))
15
hello world
11
可以指定去除:
s1 = '@@@hello@world@@@' print(s1.strip('@')) hello@world
5.split()
切分:对字符串进行切分,可以指定切分的分隔符,返回的是一个列表
a1 = 'godlover/18/male' print(a1.split('/')) ['godlover', '18', 'male']
6.len()
获取当前数据中的元素的个数
a1 = ' hello ' print(len(a1)) 7
需要掌握的:
rstrip() 删除左边空格
lstrip() 删除右边空格
upper() 全部大写
lower() 全部小写
title() 首字母大写
7.endswith() startswith() :判断当前字符串是否以(。。。)开头,或者以(。。。)结尾,返回布尔值
8.r.split() 可以指定切分的次数
s1 = 'name,age,gender' print(s1.rsplit(',',1)) ['name,age', 'gender']
9.join()
将列表每个元素按照前面字符串中的分隔符进行拼接 ps:传入的列表只能是字符串
l1 = ['sean', '18', 'male'] print('\'.join(l1)) sean18male
10.replace()
将字符串中的元素进行替换,先写老的元素再写新的元素
s1 = 'sean,18' print(s1.replace('sean','godlover')) godlover,18
11.isdigit() : 判断当前字符串中的数据,是否是一个整数,返回布尔值
s1 = 'asd' print(s1.isdigit()) s2 = '123' print(s2.isdigit()) False True
12.find()
查找当前字符串某个元素的位置,返回索引,找不到返回-1,从左往右找
s1 = "你今天吃饭了么?" print(s1.find('吃饭')) print(s1.find('吃')) print(s1.find('喝')) 3 3 -1
rfind():从右往左找
可以指定位置,find('?', , )
s1 = "你今天吃饭了么?" # print(s1.find('吃饭')) # print(s1.find('吃')) # print(s1.find('喝')) print(s1.find('了',0,6)) print(s1.find('了',0,4)) 5 -1
13.index()
查找当前字符串某个元素的位置,返回索引,找不到返回异常,从左到右
s1 = '你是谁啊 ?' print(s1.index('啊')) 3 s1 = '你是谁啊 ?' # print(s1.index('啊')) print(s1.index('我')) Traceback (most recent call last): File "F:/python_work/python_oldboyedu_learn/Oldboyedu_python/python_base.py", line 583, in <module> print(s1.index('我')) ValueError: substring not found 找不到值,返回异常
rindex():从右往左找
14.count():统计当前字符串中某一个元素的个数
s1 = '你昨天吃了什么,今天又吃了什么?' print(s1.count('吃')) 2
15.center(),ljust(),rjust(),zfill()
print("欢迎光临".center(20, '*')) print("欢迎光临".ljust(20, '*')) print("欢迎光临".rjust(20, '*')) print("欢迎光临".zfill(20)) ********欢迎光临******** 欢迎光临**************** ****************欢迎光临 0000000000000000欢迎光临
16.is系列
isdigit: unicode,bytes
isdecimal: unicode
isnumeric: unicode中文字符罗马字符阿拉伯数字
类型总结:
有序,不可变,存一个值
列表
用途:用于存一个或多个不同类型的值
定义:通过中括号存值,每个值之间通过逗号进行分隔
常用方法
1.索引取值:
正向取值,反向取值都可以,不仅可取,还可以以存
l1 = [1, 2, 3, 4, 5] print(l1[2]) l1[2] = 222 print(l1) 3 [1, 2, 222, 4, 5]
2.索引切片
参考字符串索引切片
3.append()
追加值,只能追加到最后一位,一次性只能添加一个值
l1 = [1, 2, 3, 4, 5] print(l1) l1.append(10) print(l1) [1, 2, 3, 4, 5] [1, 2, 3, 4, 5, 10]
4.insert()
插入值,通过索引指定,插入的位置
l1 = [1, 2, 3, 4, 5] # print(l1) # l1.append(10) # print(l1) print(l1) l1.insert(3,11) print(l1) [1, 2, 3, 4, 5] [1, 2, 3, 11, 4, 5]
5.extend()
添加多个值,传入可迭代对象
l1 = [1, 2, 3, 4, 5] print(l1) l1.extend([10,11,12]) print(l1) [1, 2, 3, 4, 5] [1, 2, 3, 4, 5, 10, 11, 12]
6.remove()
指定值删除,删除比较彻底
l1 = [1, 2, 3, 4, 5] # print(l1) # l1.extend([10,11,12]) # print(l1) l1.remove(1) print(l1) [2, 3, 4, 5]
7.pop()
不传值,默认从最后开始弹出,指定索引弹出,有返回值,返回被弹出的元素
万能删:
del li [0]
l1 = [1, 2, 3, 4, 5] print(l1.pop()) print(l1) 5 [1, 2, 3, 4]
l1 = [1, 2, 3, 4, 5] # print(l1.pop()) # print(l1) print(l1.pop(2)) print(l1) 3 [1, 2, 4, 5]
内置方法:
1.count:统计当前列表内指定元素的个数
l1 = [1, 2, 3, 4, 5, 6, 1] print(l1.count(1)) 2
2.index:获取当前列表指定元素的索引值,还可以指定查找的范围
l1 = [1, 2, 3, 4, 5, 6, 1] print(l1.index(1)) 0
l1 = [1, 2, 3, 4, 5, 6, 1] print(l1.index(1,1,)) 6
3.sort:排序,在原列表上,进行排序操作
默认 reverse=False 从小到大
reverse=True 从大到小
l1 = [1, 2, 3, 4, 5, 6, 1]
# print(l1.index(1,1,))
l1.sort()
print(l1)
l1.sort(reverse=True)
print(l1)
[1, 1, 2, 3, 4, 5, 6]
[6, 5, 4, 3, 2, 1, 1]
4.sorted:
python内置函数,在排序时生成一个新列表,原数据不变
l1 = [1, 2, 3, 4, 5, 6, 1] # print(l1.index(1,1,)) # l1.sort() # print(l1) # l1.sort(reverse=True) # print(l1) sorted(l1) print(l1) print(sorted(l1)) [1, 2, 3, 4, 5, 6, 1] [1, 1, 2, 3, 4, 5, 6]
clear:清空列表数据
l1 = [1, 2, 3, 4, 5, 6, 1] l1.clear() print(l1) []
队列: 先进先出
堆栈: 先进后出