python-03

基础数据类型
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

字典的嵌套

上一篇:在Node.js环境下使用Express创建Web项目实例


下一篇:冬季实战营第四期:零基础容器技术实战