数据类型及内置方法
整形int与浮点型float
1、定义:
1.1 整形int的定义
age = 18 # age = int(18)
常用方式,数学计算
进制之间的转换:
“”“ 其他进制转十进制 二进制转十进制:0,1 110 1 * (2^2) + 1 * (2^1) + 0 * (2^0) = 4 +2 +0 = 6 八进制转十进制:0~7 123 1 * (8^2)+ 2 * (8^1) + 3*(8^0) = 64 + 16 +3 = 83 十六进制转十进制:0~9 a~f 321 3 * (16^2) + 2 * (16^1) + 1 * (16^0) = 768 + 32 + 1 = 801 “”“ print(int("110",2)) print(int("123",8)) print(int("321",16)) 十进制转二进制: print(bin(108)) #ob 1101100 print(oct(83)) # 0o 123 print(hex(1000)) #0x 3e8
# 整形int是无序的 ,有索引的类型都是有序的。
# 整形int是不可变类型
值变id也变就是不可变类型
1.2 浮点型float的定义
定义方式:height = 1.0 #height = float(1.0)
浮点型float是无序的,是不可变类型,存一个值
1.3列表
定义:在[]内,用逗号分隔开多个任意数据类型的值
定义方式:通过中括号存值,每个值之间通过逗号分隔
常用方法:
1、索引取值(正反都可以),不仅可以取还可以存
l1 = [1, 2, 3, 4, 5]
print(l1[2])
l1[2] = 222
print(l1)
结果:3 [1, 2, 222, 4 ,5]
2、切片索引
print(l1[1:4])
结果:[2,3,4]
3、append():追加值。只能添加到列表的最后一位,一次性只能添加一个值
l1.append(10000)
print(l1)
l1.append([9,0])
print(l1)
结果:[1, 2, 3, 4, 5, 10000]
[1, 2, 3, 4, 5, 10000, [9, 0]]
4、insert() :插入值,通过索引指定插入的位置
l1.insert(3, 999)
print(l1)
结果:[1, 2, 3, 999, 4, 5, 10000, [9, 0]]
5、extend():也是追加到列表的最后一位,
l1.extend([6, 7, 8])
print(l1)
6、remove:指定值删除(指定列表里的某个值),比较彻底
l1.remove(1)
print(l1)
7.pop(): 不传值,默认从最后开始删,指定索引删值,pop是有返回值的
l1 = [1, 2, 3, 4, 5]
val = l1.pop(2)
print(l1)
print(val)
结果: [1, 2, 4, 5] 3
l1.pop()
print(l1)
l1.pop()
print(l1)
结果:[1 , 2 , 4] [1 , 2]
列表是可变值,存多个值
1.4 字符串
定义: 在单引号\双引号\三引号内包含一串字符
s1 = '大象'
s2 = "大象"
s3 = '''大象'''
s4 = “”“大象”“”
以上四种方式都没有任何区别,但是不能混用
常用方法: 1、索引取值(正向取、反向取),只能取不能存 s1 = 'hello world' print(s1[4]) #正向取 print(s1[-7])#反向取 2、索引切片:截取字符串中的一小段字符串 print(s1[2:5]) 结果: llo print(s1[4:]) 结果: o world print(s1[:5]) 结果: hello print(s1[0:-2:2]) 结果:hlowr print(s1[::-1]) 结果:dlrow olleh 3、成员运算: in not in #判断指定字符是否在该字符串中,返回布尔值 print("o" not in s1) 4、strip:去除字符串左右连那个边的空格,中间不算 input无论接受的是什么类型,一定返回的是字符串 name = input(">>:").strip() print(len(name)) a1 = '$$$sean$$$' print(a1.strip("$")) 结果:sean 5、split :切分:对字符串进行切分,可以指定切分的分隔符,返回是一个列表 a1 = 'sean~18~male' print(a1.split(~)) 结果:['sean','18','male'] 6、len():获取当前数据中的元素的个数 a1 = 'hello' print(len(a1)) 结果:5 a1 = 'hello' for i in a1: print(i) 结果:h e l l o
需要掌握的知识点
strip, rstrip(右边的清除),lstrip(左边的清除) inp = input(">>:").lstrip("*") #清除输入内容左边的*号 print(inp) print(len(inp)) lower(全部转换成大写)/upper(全部转换成小写) s1 = 'Hello world' print(s1.upper()) print(s1.lower()) 结果:HELLO WORLD hello world startswith/endswith :判断当前字符串是否以。。。开头,或者以。。。结尾,返回的值一定是布尔值 s1 = 'Hello world' print(s1.startswith("He")) 结果:True .format() 你的名字是:sean,你的年龄是:18 name = 'xiaogu age = 18 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: 通过大括号接受变量,在字符串前面一定要加一个小写f 在python以后才有 print(f"你的名字:{name},你的年龄是:{age}") split/rsplit #切分 s1 = "name,age,gender" print(s1.split("e",1))#指定可以切分的次数 结果:['nam','age,gender'] join:将(列表)中每个元素按照前面字符串中的分隔符进行拼接 l1 = ['sean','18','male'] print("|".join(l1)) 结果:sean|18|male replace:将字符串中的元素进行替换,参数:先输入要替换的值,再试要替换的新值 s1 = "sean,18" print(s1.replace("sean",'大象')) 结果:大象,18 isdigit():判断当前字符串中的数据,是否是一个数字,返回布尔值 score = input("pleas input your score:") if score.isdight(): score = int(score) if score >= 90 print("优秀") else: print("真皮") 字符串是有序的(有索引),不可变类型 ,存一个值
1.5了解操作
find,rfind,index,rindex,count find #查找当前字符串中某个元素的位置,返回索引,找不到返回-1 s1 = '你今天吃饭吃了吗?' print(s1.find("?",)) 结果: 8 index #查找当前字符串中某个元素的位置,返回索引,找不到返回异常 count #统计当前字符串中某一个元素的个数 s1 = '今天你吃饭吃了吗?' print(s1.count("吃")) 结果: 2 center/ljust/rjuse/zfill print("欢迎光临".ceneter(8,"-")) 结果:--欢迎光临-- print("欢迎光临".ljust(30,"-")) 结果:欢迎光临-------------------------- print("欢迎光临".rjust(30,"-")) 结果:--------------------------欢迎光临 print("欢迎光临".zfill) #右对齐,不够以0填充 结果:000000000000000000000000000000000欢迎光临 expandtabs() name = 'tony \t hello' # \t表示制表符(tab键) print(name) 结果:tony hello name.expandtabs(1) # 修改\t制表符代表的空格数 结果:tony hello
is系列
在python3中
num1 = b'4' #bytes
num2 = u'4' #unicode,python3中无需加u就是unicode
num3 = '四' #中文数字
num4 = 'Ⅳ' #罗马数字
isdigit: 识别unicod和bytes