基础数据类型
1.基础数据类型总览
int str True False bool
list[ ]存储大量数据
(12,True)tuple 存储大量数据,不可改变里面的元素
{'name':'何康'} dict 存储大量关联型的数据,查询速度非常快
set交集并集差集。。。
2.int
3.bool
4.str
。索引、切片
。常用操作方法
int 主要用于计算 +- * /
ctrl 按住点击数据类型查看
i = 4
bit_length 有效的二进制长度
print(i.bit_length())
l = 10
print(l.bit_length())
int
'''
bool <---> int
True 1 False 0
非零即True 0 是False
'''
str <---> int *
'''
s1 = 10 int(s1): 必须是数字组成
i =100 str(i)
'''
str bool *
非空即True
s1 = 'fdisk'
print(bool(s1))
print(str(True))
s1 = 'python学习'
对字符串进行索引,切片出来的数据都是字符串类型
从左至右有顺序,下标,索引
s2 = s1[0]
print(s2, type(s2))
取 '习'
print(s1[-1])
按照切片取值 *(python)
顾头不顾尾 想取到尾部的索引加一
print(s1[0:6]) # print(s1[:6])
从学到末尾
print(s1[6:])
切片步长
s4 = 'python是一门好语言'
s5 = s4[:13:2] #隔一个取一个
print(len(s2))
print(s5)
倒序: 必须加步长 *
s6 = 'python全栈22期'
s7 = s6[-1:5:-1] # s7 = s6[-1:-6:-1]
print(s7)
全部取出来
print(s6[::])
倒序全部取出来
print(s6[-1::-1])
upper 将字符串转换为大写
lower 将字符串转换为小写
username = input('用户名:')
password = input('密码:')
code = 'QweA'
your_code = input('请输入验证码:不区分大小写')
if your_code.upper() == code.upper():
if username == 'hekang' and password == '123':
print('登陆成功')
else:
print('用户名密码错误')
else:
print('验证码错误')
startswith endswith
startswith endswith
s = 'hemingkang'
print(s.startswith("he"))
了解
print(s.startswith('i', 3, 6))
replace
msg = 'hekang,长得很帅。hekang,真的很不错,hekang,想谈恋爱'
msg1 = msg.replace('hekang', 'xiaowu', 2)
print(msg1)
strip :去除空白,空格,\t \n
s4 = '\n hekang\t'
print(s4)
print(s4.strip())
可以去除指定的字符 从前往后 从后往前 去除
s5 = 'rre太白qsd'
s6 = s5.strip('reqsd')
print(s6)
split 切割 成列表
默认按照空格分隔 ,返回一个列表
指定分隔字符 原字符串以什么符号,
可以让那个字符串在那个符号的地方以逗号分隔(默认逗号分隔)
s7 = '太白 女神 吴杰'
l = s7.split()
k = s7.split('*')
print(l)
print(k)
s8 = ':barry:nvshen:wu'
print(s8.split(":", 2))
join的使用
Python join() 方法用于Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。将序列中的元素以指定的字符连接生成一个新的字符串。
join 的使用
s7 = 'hemingkang'
s8 = '+'.join(s7)
print(s8, type(s8))
str = "-"
seq = ("a", "b", "c");# 字符串序列
print(str.join( seq ))
输出 a-b-c
count
s = 'abdsddcsdcfdgbgfa'
print(s.count("a"))
输出 2
format
format
1.
msg = "我叫{},今年{}岁".format("何明康", "20")
print(msg)
2.
msg1 = '我是你的{0},今年{1},性别{2},我还是你{0}' .format('爸爸', '19', '男')
print(msg1)
3.
msg2 = '我是你的{name},今年{age},性别{sex},我还是你{name}' .format(name='爸爸', age='19', sex='男')
print(msg2)
is 系类:
name = 'hekang123'
print(name.isalnum()) #字符串由字母或数字组成
print(name.isalpha()) #字符串只由字母组成
print(name.isdecimal())#字符串只由十进制组成
s1 = input("请输入您的金额:")
if s1.isdecimal():
print(int(s1))
else:
print("您的输入有误")
s1 = '何明康haoshuai'
print('hao' in s1)
print('kang' not in s1)
for 循环
for循环
s1 = '好好学习,天天向上'
'''
好 s1[0]
好 s1[1]
学 s1[2]
习 s1[3]
天 s1[4]
天 s1[5]
向 s1[6]
上 s1[7]
'''
index = 0
while index < len(s1):
print(s1[index])
index += 1
'''
有限循环
for 变量 in interable:
pass
'''
s2 = '何康qwertyuiop'
for i in s2:
print(i)
break continue
列表的初识
str: 用来存储少量数据
str:切片还是对其进行任何操作,获取的内容全部都是str类型。存储的数据类型单一。
list = [100,'alex',True,[1,2,3]]承载任意数据类型,存储大量数据。
python常用的容器型数据类型。list列表,其他语言:java:数组
列表是有序的,可索引,切片(步长)
li = [100, '何康', True, [1, 2, 3]]
索引
print(li[0], type(li[0]))
print(li[-1], type(li[-1]))
切片
print(li[:2]) # 前两个
print(li[::]) # 从头到尾
print(li[:4:2]) # 隔一个取一个
列表的常用操作 (增删改查)
列表的创建
方式一
ll = [1, 2,'Alex']
方式二
空列表
ll = list()
print(ll)
方式三:列表推导式
增
增 append追加
ll = ['杨楷文', '王政', '胡嘉恒', '柏旭', '李猛', '何明康']
ll.append("xx")
print(ll)
ll = ['杨楷文', '王政', '胡嘉恒', '柏旭', '李猛', '何明康']
while 1:
name = input("请输入:")
if name.upper() == "Q":
break
ll.append(name)
print(ll)
insert
ll = ['杨楷文', '王政', '胡嘉恒', '柏旭', '李猛', '何明康']
ll.insert(4,"shuaige")
print(ll)
迭代添加
ll = ['杨楷文', '王政', '胡嘉恒', '柏旭', '李猛', '何明康']
迭代添加 extend
ll.extend("abcd")
print(ll)
['杨楷文', '王政', '胡嘉恒', '柏旭', '李猛', '何明康', 'a', 'b', 'c', 'd']
ll = ['杨楷文', '王政', '胡嘉恒', '柏旭', '李猛', '何明康']
迭代添加 extend
ll.extend(['alex',])
print(ll)
['杨楷文', '王政', '胡嘉恒', '柏旭', '李猛', '何明康', 'alex']
ll = ['杨楷文', '王政', '胡嘉恒', '柏旭', '李猛', '何明康']
迭代添加 extend
ll.extend(['alex', 1, 2])
print(ll)
['杨楷文', '王政', '胡嘉恒', '柏旭', '李猛', '何明康', 'alex', 1, 2]
删
ll.pop(-2) # 按照索引删除 (返回的是删除的元素)
ll = ['杨楷文', '王政', '胡嘉恒', '柏旭', '李猛', '何明康']
删
按照索引位置删除
ll.pop(-2) # 按照索引删除 (返回的是删除的元素)
print(ll.pop(-2)) ['杨楷文', '王政', '胡嘉恒', '柏旭', '何明康']
ll.pop() # 默认抛出最后一个元素
print(ll)
ll = ['杨楷文', '王政', '胡嘉恒', '柏旭', '李猛', '何明康']
删
remove 指定元素删除,默认删除从左数第一个
ll.remove('李猛')
print(ll)
ll.clear() 清空
del
del
#按照索引删除
del ll[-2]
print(ll)
#按照切片删除(步长)删除
del ll[::2]
print(ll)
print(ll)
改
ll = ['杨楷文', '王政', '胡嘉恒', '柏旭', '李猛', '何明康']
按照索引改值
ll[0] = '韩寒'
print(ll)
ll = ['杨楷文', '王政', '胡嘉恒', '柏旭', '李猛', '何明康']
按照切片改
ll[2:] = ['shuaibi', 'gege', 'didi']
print(ll)
ll = ['杨楷文', '王政', '胡嘉恒', '柏旭', '李猛', '何明康']
按照切片(步长)
ll[::2] = ['ao', '33', '66']
print(ll)
ll = ['杨楷文', '王政', '胡嘉恒', '柏旭', '李猛', '何明康']
查
索引 ,切片 , (步长)
for i in ll:
print(i)
列表:容器型数据类型,可以承载大量的数据,有序的。
增
append 追加
insert 插入
extend 迭代追加
删
pop按照索引进行删除
remove按照元素删除
del索引,切片(步长)
clear 清空
改
l1[1] = '大壮'
l1[1:3]
查
索引,切片、for循环
元组 :只读列表,(),拆包
range:看作:可以控制自己范围的数字列表
什么也不打印
for i in range(5,1,-1):
print(i)
练习:
content = input("请输入内容:")用户输入;5+9或5+ 9 或5+ 9,进行分割再进行计算。
content = input("请输入内容:")
l1 = content.split("+")
result = int(l1[0].strip()) + int(l1[1].strip())
print(result)
计算用户输入的内容中有几个整数
content = input("请输入内容:")
result = 0
for i in content:
if i.isnumeric():
result +=1
print(result)
字典
容器型数据类型 :dict
数据类型的分类(可变与不可变):
可变(不可哈希)的数据类型:list dict set
不可变的(可哈希)的数据类型 :str bool int tuple
字典:{}括起来,以键值对形式存储的容器型数据类型
dict = {'505宿舍':
{'name1':'hemingkang', 'name2':'yangkaiwen'},
'宿舍人员':['何康', '李猛'],
}
print(dict)
键必须是不可变的数据类型:int ,str ,(bool tuple)几乎不用
值可以是任意数据类型,对象
查询速度非常快,存储关联性数据
字典的创建
1
dic = dict((('one',1), ('two',2), ('three',3)))
print(dic)
{'one': 1, 'two': 2, 'three': 3}
2
dic = dict(one=1, two=2, three=3)
print(dic)
{'one': 1, 'two': 2, 'three': 3}
3
dic = dict({'one': 1, 'two': 2, 'three': 3})
print(dic)
{'one': 1, 'two': 2, 'three': 3}
字典的操作
增
dic = {'name': '李猛', 'age': 18}
增
直接增加
dic['sex'] = '男'
有则改之,无则增加
print(dic)
setdefault
有则不变,无则增加
dic.setdefault('老师', '高琪琪')
print(dic)
删
pop按照 键 去删除 ,有返回值,如果设置第二个参数无论字典中有无此键,都不会报错
dic = {'name': '李猛', 'age': 18}
ret = dic.pop('name')
返回值是值
print(ret)
print(dic)
李猛
{'age': 18}
dic = {'name': '李猛', 'age': 18}
ret = dic.pop('happy', '查无此人')
print(ret)
print(dic)
clear 清空
dic = {'name': '李猛', 'age': 18}
dic.clear()
print(dic)
del 按照键删除 没有键 会报错
dic = {'name': '李猛', 'age': 18}
del dic['name']
print(dic)
改
dic = {'name': '李猛', 'age': 18}
dic['name'] = '何明康'
print(dic)
查
没有键时会报错
dic = {'name': '李猛', 'age': 18, 'hobby':'玩电脑'}
dic['name'] = '何明康'
print(dic['hobby'])
get
dic = {'name': '李猛', 'age': 18, 'hobby': '玩电脑'}
ll = dic.get('hobby')
print(ll)
三个特殊的
keys() values() items()
dic = {'name': '李猛', 'age': 18, 'hobby': '玩电脑'}
print(dic.keys())
可以转换成列表
dic = {'name': '李猛', 'age': 18, 'hobby': '玩电脑'}
print(list(dic.keys()))
['name', 'age', 'hobby']
可以遍历循环
dic = {'name': '李猛', 'age': 18, 'hobby': '玩电脑'}
for i in dic.keys():
print(i)
name
age
hobby
values()
dic = {'name': '李猛', 'age': 18, 'hobby': '玩电脑'}
print(dic.values())
print(list(dic.values()))
for i in dic.values():
print(i)
items()
dic = {'name': '李猛', 'age': 18, 'hobby': '玩电脑'}
print(dic.items())
print(list(dic.items()))
for i in dic.items():
print(i)
dict_items([('name', '李猛'), ('age', 18), ('hobby', '玩电脑')])
[('name', '李猛'), ('age', 18), ('hobby', '玩电脑')]
('name', '李猛')
('age', 18)
('hobby', '玩电脑')
a,b 值互换
a = 12
b =18
a = 18
b = 12
c = b
b = a
a = c
print(a ,b)
a,b = b,a
字典的嵌套