基本数据类型及内置方法
一、整型和浮点型
1.整型
用途:一般用于定义整数,例如年龄,身份证号,QQ号等
定义方法:age = 18 (本质是age = int(18))
进制之间的转换:
-
二进制转十进制
110--->1 * (2 ** 2) + 1 * (2 ** 1) + 0 * (2 ** 0) = 4 + 2 + 0 = 6
内置方法:print(int("110",2))
-
八进制转十进制
123---->1 * (8 ** 2) + 2 * (8 * * 1) + 3 * (8 ** 0) = 64 + 16 + 3 = 83
内置方法:print(int("123",8)
-
十六进制转十进制
321---> 3 * (16 ** 2) + 2 * (16 ** 1) + 1 * (16 ** 0) = 768 + 32 + 1 = 801
内置方法:print(int("321",16))
-
十进制转二进制
内置方法:print(bin(100)) # 0b1100100
-
十进制转八进制
内置方法:print(oct(100)) # 0o144
-
十进制转十六进制
内置方法: print(hex(1000)) # 0x 3e8
==============类型总结=================
有序or无序 无序
可变or不可变 int整型是不可变类型
存一个值or多个值 存一个值
=====================================
注意:有索引的类型都是有序的,不能索引的都是无序的;
值变id不变就是可变类型
值变id也变就是不可变类型
=====================================
2.浮点型
用途:用于记录小数,例如身高,体重,薪资等
定义方式:height = 1.8 (本质是height = float(1.8))
注意:字符串里面如果是浮点型不能直接转整型,需要先转浮点型再转整型
示例:
s1 = '1.0'
f1 = float(s1)
a1 = int(f1)
print(a1)
==============类型总结=================
有序or无序 无序
可变or不可变 不可变类型
存一个值or多个值 存一个值
=====================================
二、字符串
用途:用于存储一些描述型信息
定义方式:用单引号,双引号,单双三引号都可以定义字符串,但是注意不能混用
补充:字符串前面加一个小写的r代表转义,表示可以将字符串李面特殊功能的符号转成没有意义
常用方法:
-
str()可以将任意内容定义成字符串格式
-
索引取值(可以正反方向取值)
s1 = 'hello world'
print(s1[4]) # 正向取
print(s1[-7]) # 反向取
-
索引切片:截取字符串中的一小段字符串
s1 = 'hello world'
print(s1[2:5]) # 第二位到第五位之间的所有元素,注意顾头不顾尾
print(s1[4:]) # 第四位后面的所有元素
print(s1[:5]) # 第五位前面的所有元素
print(s1[0:-2:2]) # 参数意义:start,stop,step
print(s1[::-1]) # 反向排序
-
成员运算:in not in
s1 = 'hello world'
print("o" in s1) # 如果'o'在s1里面则返回True,否则是False
-
.strip:表示去除字符串左右两边的空格,字符串中间的不算
name = input(">>:").strip()
print(len(name))
a1 = "$$$jiang$$$"
print(a1.strip("$")) # 表示指定字符删除
-
split:切分,对字符串进行切分,可以指定切分的分隔符,返回是一个列表
s1='hello world'
print(s1.split())
输出结果:['hello', 'world']
括号内指定分隔字符,则按照括号内指定的字符切割字符串
s2 = '127.0.0.1'
print(s2.split('.'))
['127', '0', '0', '1'] # 注意:split切割得到的结果是列表数据类型
a1 = r'sean\18\male' # 反斜杠类型要先转义
print(a1.split('\\')) # 并且要双反斜杠
-
len ():表示获取当前数据中的元素的 个数
a1 = 'hello'
print(len(a1))
5
-
for:表示循环
一般用法for 变量 in 容器类型 ,
例如
a1 = 'hello'
for i in a1
-
strip,rstrip,lstrip
和strip一样表示去字符串两边的空格或其他符号,但是rstrip表示去除的是左边的,lstrip表示去除的是右边的
-
lower\upper :表示将字符串全部小写或全部大写
s1 = 'Hello world'
print(s1.upper())
print(s1.lower())
-
startswith\endswith:判断当前字符串是否以什么什么开头或结尾,返回值一定是True或者False
s1 = 'Hello world'
print(s1.startswith("He"))
print(s1.endswith('ld'))
-
.format:字符串格式化
name = 'sean'
age = 19
print("你的名字是:",name,"你的年龄是,",age)
print("你的名字是:{},你的年龄是:{}".format(name,age))
print("你的名字是:{1},你的年龄是:{0}".format(name,age))
print("你的名字是:{name},你的年龄是:{age},{gender}".format(age=age,name=name,gender='male'))
-
f-string:也是表示字符串格式化,通过大括弧解释变量,在字符串前面一定要加个小写的r(python3.6之后才有的特性)
print(f"你的名字是:{name},你的年龄是:{age}")
-
split\rsplit:split默认表示从左开始切分,rsplit表示从右开始切分,
s1 = "name,age,gender"
print(s1.split(",",1)) # 1表示指定切分的次数
-
join:表示将列表、元祖或者字典中的每个元素按照jion前面字符串中的分隔符进行拼接,结果依然是原类型
l1 = ['sean','18','male']
print("|".join(l1))
-
replace:将字符串中的元素进行替换,参数表示先老值,再新值
print(s1.replace("sean",'大象'))
-
isdigit() :判断当前字符串中的数据,是否是一个数字,返回布尔值
score = input("please input your score:")
if score.isdigit():
score = int(score)
if score >= 90:
print('优秀')
else:
print("输入错误")
需要了解的知识点
find\rfind: 查找当前字符串中某个元素的位置,返回索引,找不到返回-1
s1 = '你今天吃饭吃了吗?'
print(s1.find("?",))
index\rindex:查找当前字符串中某个元素的位置,返回索引,找不到返回异常
print(s1.index("?"))
count: 统计当前字符串中某一个元素的个数
print(s1.count("吃"))
print(s1.count("吃",1,6))
# 统计在1~6范围内出现的次数
-
center\ljust\rjust\zfillprint :表示填充
print("欢迎光临".center(30,"")) # 总宽度30,不够左右填充
print("欢迎光临".ljust(30,"-")) # 总宽度30,不够右边填充
print("欢迎光临".rjust(30,"-")) # 总宽度30,不够左边填充
print("欢迎光临".zfill(50)) # 总宽度为50,字符串右对齐显示,不够用0填充
-
expandtabs:表示对字符串进行分割
s1 = """
sean\t18\tmale\t # \t表示制表符
tank\t84\tfemale\t
"""
print(s1.expandtabs()) # 修改制表符代表的空格数,默认表示8
print(s1.expandtabs())
5.is数字系列
num1 = b'4' # bytes
num2 = u'4' #unicode,python3中无需加u就unicode
num3 = '四' #中文数字
num4 = 'Ⅳ' #罗马数字
# isdigt:bytes,unicode
>>> num1.isdigit()
True
>>>num2.isdigit()
True
>>> num3.isdigit()
False
>>> num4.isdigit()
False
# isdecimal:uncicode (bytes类型无isdecimal方法)
>>> num2.isdecimal()
True
>>> num3.isdecimal()
False
>>> num4.isdecimal()
False
#isnumberic:unicode,中文数字,罗马数字(bytes类型无isnumberic方法)
>>> num2.isnumeric()
True
>>> num3.isnumeric()
True
>>> num4.isnumeric()
True
# 三者不能判断浮点数
>>> num5 = '4.3'
>>> num5.isdigit()
False
>>> num5.isdecimal()
False
>>> num5.isnumeric()
False
===============类型总结===================
有序or无序 : 有序
可变or不可变 : 不可变类型
一个值or存多个值 存一个值
值变id不变就是可变类型
值变id也变就是不可变类型存