Python高级变量

1 字符串

字符串:在单引号和双引号以及三个三引号和三个双引号的内容

1.1 下标和切片

字符串的输入和输出
input()所有接收的内容都是字符串
字符串的输出:%s
name='张三'
print('这个人的名字叫:%s'%name)

结果:
在这里插入图片描述
下标索引
如果想要获取字符串中某个字符,那么通过下标索引的方式 例如:str1[0]

str1='abcdesf'
print(str1[0])
print(str1[4])

结果:
在这里插入图片描述

切片:
就是截取一部分的操作
语法:[起始:结束:步长]
说明:在切片操作中,切片属于左闭右开型,通俗点就是左边能取到,而右边取不到

str1='hlfsajfajsofdjewoinds'
print(str1[1:5]) # 取字符串下标从1开始到4的子序列
print(str1[2:]) # 取字符串下标从2开始一直到字符串末尾
print(str1[2:8:2]) # 取字符串下标从2开始到7中间每隔2个取一个字符
print(str1[1:-1]) # 取字符串下标为1到字符串倒数第二个的所有字符序列

结果:
在这里插入图片描述
find
检测字符串a是否包含在字符串b中,如果包含,则返回开始的索引值,否则返回-1

find:字符串a是否包含在b中
语法:
b.find(a,start=0,len(b))
str='asdgajljflgasajfdsfj'
str1='ga'
print(len(str1))
print(str.find(str1,0,len(str)))
# print(str.find(str1,0,3))

结果:在第三位找到(0,1,2,3)
在这里插入图片描述
index
index和find用法一直,唯一不同的就是当查找的子序列不在另一个字符串中的时候,会报异常
用法:b.index(a,start=0,len(b))

str='asdgajljflgasajfdsfj'
str1='ga'
print(str.index(str1,0,len(str)))

结果:在第三位找到(0,1,2,3)
在这里插入图片描述
count:
表示子序列在另一个字符串中出现的次数
用法:a.count(b,start=0,end=len(a))

str='asdgajljflgasajfdsfj'
str1='ga'
print(str.count(str1,0,len(str)))

结果:
在这里插入图片描述
其他介绍:
在这里插入图片描述
在这里插入图片描述
upper:

name='xiao zhan'
print(name.upper())

结果:全变为大写
在这里插入图片描述

print(name.capitalize())

结果:首字母变为大写
在这里插入图片描述

print(name.replace('xiao','lao'))

结果
在这里插入图片描述

str='hello world yeah yeah yeah'
print(str.replace('yeah','year',2))
print(str.split(' ',2))
print(len(str))
str1=str.ljust(35)
print(str1.rjust(40))
print(str1.lstrip())
print(str1.rstrip())
str2=str1.rstrip()

结果:
在这里插入图片描述

str='hfahsdfiuew'
str1='123435'
str2='fhsdshn46565dnsns'
print(str.isalpha())
print(str1.isalpha())
print(str.isdigit())
print(str1.isdigit())
print(str2.isalnum())
print(str2.join(str))
print(str1.startswith('lo'))
print(str2.endswith('yeah'))

在这里插入图片描述

2 列表

2.1列表的介绍

是python中的一种数据结构,是很重要的,
列表里面所存的元素类型可以是多种,比如说可以存str int float bool等。
列如: name_list=[]
增加:
append:往列表末尾增加元素

2.2 列表的循环遍历

定义列表 type()可查看类型

name_list=[]
print(name_list)
print(type(name_list))

通过list[index]来获取这个列表的值

name_list=['杨浩','单赛','静初']
print(name_list[0])
print(name_list[1])
print(name_list[2])
print(len(name_list))

结果:
在这里插入图片描述
获取列表中的内容 通过循环(for while)

name_list=['杨浩','单赛','静初']
for name in name_list:
    print(name)
i=0
while i<len(name_list):
    print(name_list[i])
    i+=1

while和for结果一样
在这里插入图片描述

2.3 添加元素

append:把新的元素追加到了列表的末尾

name_list=['杨浩','单赛','静初']
name_list.append('杨威')
print(name_list)
name_list.append('魏富强')
print(name_list)

结果:
在这里插入图片描述
extend:把新的列表添加到原来的列表中,把新的列表中的元素添加到了原来列表的末尾

name_list=['杨浩','单赛','静初']
name_new=['易怀玲','朱艳涛']
name_list.extend(name_new)
print(name_list)

结果:
在这里插入图片描述
insert(index,new):在列表的指定位置,添加新元素,如果添加的是一个字符串,那么就在原来的列表中添加这个元素,如果添加的是一个列表, 那么在指定的位置把整个列表添加进去

name_list=['杨浩','单赛','静初']
name_new=['易怀玲','朱艳涛']

name_list.insert(1,'董泽坤')
print(name_list)

name_list.insert(1,name_new)
print(name_list)

在这里插入图片描述

2.4 修改元素

如何获取列表里的列表的元素 ,通过list[index][index]

name_list=['杨浩','单赛','静初']
print(name_list[1][0])

结果:
在这里插入图片描述
修改列表中的元素:通过下标的方式
list[index]=new

name_list=['杨浩','单赛','静初']
name_list[1]='朱艳涛'
print(name_list)

在这里插入图片描述

2.5 查找元素

in :如果元素存在列表中,那么返回true,否则返回false
not in :与in相反
index : 查看元素是否在列表中,如果不在,则抛出异常
count:统计元素在列表中出现的次数

name_list=['杨浩','单赛','静初']
if '马明璐' not in name_list:
    print('不存在')
else:
    print('存在')

结果:
在这里插入图片描述
index:

name_list=['杨浩','单赛','静初']
name_index=name_list.index('静初',0,len(name_list))
print(name_index)

结果:
在这里插入图片描述
count:

name_list=['杨浩','单赛','静初']
name_count=name_list.count('静初')
print(name_count)

结果:
在这里插入图片描述

2.6 删除元素

del:
根据下标索引,删除元素

name_list=['杨浩','单赛','静初']
del name_list[0]
print(name_list)

在这里插入图片描述
pop:
默认情况下,删除最后一个元素,也可以删除指定位置的元素

name_list=['杨浩','单赛','静初']
name_list.pop()
print(name_list)
name_list=['杨浩','单赛','静初']
name_list.pop(1)
print(name_list)

结果:制定删除
在这里插入图片描述
remove: 根据列表中元素的值进行删除

name_list=['杨浩','单赛','静初','董泽坤']
name_list.remove('董泽坤')
print(name_list)

在这里插入图片描述

2.7 排序(sort、reverse)

sort:将list按特定顺序重新排列,默认从小到大,参数reverse=True可改为倒序,从大到小。
reverse():将list倒置

list=[2,5,1,6,8,2,0]
list.sort(reverse=True)
print(list)
list.reverse()
print(list)

结果:
在这里插入图片描述

2.9 列表的嵌套

列表嵌套的语法
一个列表中的元素又是一个列表
list = [[‘’,’’],[‘’,’’],[‘’,’’],…]

练习:
一个学校,有3个办公室,现在有8位老师等待工位的分配,请编写程序,完成随机分配

teachers=['xiaoming','xiaowang','xiaoli','xiaoying','john','amy','aa','bbb']
offices=[[],[],[]]
import random
for temp in teachers:
    index=random.randint(0,2)
    offices[index].append(temp)
i=1
for temp_office in offices:
    print('第%d个办公室,有%d个人'%(i,len(temp_office)))
    for teacher in temp_office:
        print('%s'%teacher,end=',')
    print()
    i+=1
    print('*****************')

结果:
在这里插入图片描述

3 集合

集合:是一个无序不重复的序列
功能:去重

集合只能通过for循环获取集合中的元素

注意:
在创建空集合的时候,不能用{}直接创建,而是用set()函数创建。
集合不支持索引,因此不能用while循环获取集合中的元素。

demo:
a = set(‘ahdkjfshlsf’)
b = set(‘akhkfdkjdvdk’)
print(a - b)		差集
print(a | b)		并集
print(a & b)		交集
print(a ^ b)		a和b不同时存在的元素

创建一个空的集合 用set()函数

col=set()
print(col)
print(type(col))
col={'joe','hello','world'}

if 'joe' in col:
    print('true')
else:
    print('false')

结果:
在这里插入图片描述
如何把列表中重复的元素去掉

name_list=['wang','sun','li','wang','sun','li','zhao']
print(name_list)
name_set=set(name_list)
print(name_set)
name_list=list(name_set)
print(name_list)

结果:
在这里插入图片描述

sets={'xiaowang',23,44.5,False}
print(sets)

结果:
在这里插入图片描述

sets={'xiaowang',23,44.5,False}
print(sets)
print(len(sets))
for temp in sets:
    print(temp)

结果:
在这里插入图片描述

4 元组

元组和列表类似,但是元组不能进行修改
元组可以使用下标进行获取
元组的符号是(),列表是[]

支持索引:
可以通过循环获取元组中的元素(for while)

元组虽然不能进行修改,但是可以把两个元组进行拼接
元组删除,只能删除这个元组

4.1 元组操作

tuple1=()
print(type(tuple1))

访问元组:通过下标索引访问,下标从0开始

tuple1=('张三','wang',23,56,3.4)
print(tuple1)
print(tuple1[0])
print(tuple1[2])

结果:
在这里插入图片描述

tuple1=('张三','wang',23,56,3.4)
for temp in tuple1:
    print(temp)
tuple1=('张三','wang',23,56,3.4)
i=0
while i<len(tuple1):
    print(tuple1[i])
    i+=1

结果:一样
在这里插入图片描述
修改元组:元组中的元素值是不允许修改的,但是可以对元组进行拼接

tuple1=('张三','wang',23,56,3.4)
tuple1=(1,2,3)
tuple2=(4,5,6)
tuple3=tuple1+tuple2
print(tuple3)

结果:
在这里插入图片描述
删除元组:元组中的元素值是不允许删除的,但是可以删除整个元组
元组被删除后,输出变量会有异常信息

del tuple3

4.2 元组补充

元组运算符:与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着元组可以组合和复制,运算后会生成一个新的元组
在这里插入图片描述
元组索引、截取
在这里插入图片描述
元组内置函数
在这里插入图片描述

5 字典

字典:在{}里面的一个一个的key-value键值对的数据结构
可以通过get()获取想要的那个key的值,还可以设定默认值,当字典中没有
这个key的时候,输出默认值,如果在字典中有这个key及对应的值,那么输出
字典中的值

可以通过for循环获取字典中的元素(k-v)
keys():获取字典中所有的key键
values():获取字典中所有的value值
items():获取字典中的key-value键值对

dict={'name':'jim','id':1001,'address':'北京','age':19}
print(dict['name'])

print(dict.get('age',15))

for k in dict.keys():
    print(k)

for v in dict.values():
    print(v)

for k in dict.items():
    print(k)

在这里插入图片描述
修改和添加都是通过key键的方式完成
修改字典中的key对应的value值
dict[‘key’]=new_value
添加字典中的元素
dict[‘new_key’]=new_value
删除字典中的某个元素
del dict[‘key’]
清空字典
dict.clear()
删除字典
del dict

dict1={'name':'jim','id':1001,'address':'北京','age':19}
print(dict1)
dict1['id']=1002
print(dict1)
#修改字典中的key对应的value值
dict1['sex']='男'
print(dict1)
#删除字典中的某个元素
del dict1['age']
print(dict1)
#清空字典
dict1.clear()
print(dict1)
#删除字典
del dict1
print(dict1)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值