'''
字符串类型
字符串切片
字符串常用操作方法
列表
列表循环
列表嵌套
元组及其使用场景
'''
# str1='abcd'
# str2='hello world'
# 三引号定义字符串 支持换行
str3='''
life is short
i study python!
'''
print(str3)
# 创建一个字符串 I’m Tom
str4 = 'I\'m Tom' # \ 转义字符
str5 = "I'm Tom"
# 字符串输入 input就可以 input()返回的数据类型都是字符串
'''
字符串切片
变量名称[起始位置:结束位置:步长]
'''
str6 = 'itheima'
print(str6[1: 5: 1])
'''
字符串中的查找方法
str.find() 返回搜索内容起始下标,没有的话返回-1
str.index() 返回搜索内容起始下标,没有的话报错
'''
# str7 = 'hello world'
# str8 = 'rle'
# print(str7.find(str8))
# print(str7.index(str8))
'''
如何获得图片名称以及图片后缀名
r.find() 从右边开始查询
'''
# filename = input('请输入图片名称:')
# index = filename.rfind('.')
# print(filename[:index])
# print(filename[index:])
'''
字符串常用的操作方法
1.修改字符串
str.replace() 替换
str.split() 返回列表 切割
'str'.join(list) 多个字符串合并一个字符串
str.upper() str.lower() 大写或小写
'''
str7 = 'hello linux'
str8 = 'hello python and hello ubuntu'
print(str7.replace('linux', 'python'))
print(str8.replace('python', 'linux', 1))
str9 = 'apple-banana-orange'
print(str9.split('-'))
# 定义一个列表
list1 = ['apple', 'banana', 'orange']
print('-'.join(list1))
str10 = 'i am tom,nice to meet you'
# 把首字母大写
print(str10.title())
# 全大写
print(str10.upper())
'''
字符串判断
str.startwith()
str.endswhit()
'''
print(str10.startswith('i'))
print(str10.endswith('you'))
print('-'*20)
'''
验证码问题
'''
import random
code=''
yzm = 'abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ1234567890'
# 编写循环结构
for i in range(4):
index = random.randint(0,len(yzm)-1)
code +=yzm[index]
print(code)
print(yzm[random.randint(0, 24)])
print('-'*20)
'''
列表
存储结构与遍历输出
列表查找方法
'''
name_list = ['lihua','chengchen','tom']
print(name_list)
for i in name_list:
print(i)
fruit_list = ['apple','banana','orange','pear','pear','pear']
print(fruit_list.index('orange'))
print(fruit_list.count('pear'))
print('-'*30)
'''
in
not in
返回true false
'''
bloce_ips = ['192.168.27.5','10.1.1.100','222.246.129.81']
if '10.1.1.100' in bloce_ips:
print('恶意访问')
else:
print('正常请求')
print('-'*30)
'''
增加
append() 追加
extend() 两个列表合并
insert() 指定位置插入
'''
fruit_list.append('lenmo')
print(fruit_list)
fruit_list.extend(name_list)
print(fruit_list)
# 特殊 使用extend插入一个字符串
name_list.extend('python')
print(name_list)
name_list.insert(2,'lili')
print(name_list)
print('-'*30)
'''
删除
del
pop() 默认删除最后一个 也可以指定位置
remove() 移除第一个
clear()
'''
del name_list[1]
print(name_list)
name_list.pop(3)
print(name_list)
name_list.remove('h')
print(name_list)
print('-'*30)
'''
列表修改
reverse() 反转操作
sort() 排序 默认从小到大
sort(reverse=True) 从大到小
['lihua', 'lili', 'tom', 'y', 't', 'o', 'n']
'''
name_list.reverse()
print(name_list)
name_list.sort()
print(name_list)
#列表切片
print(name_list[::-1])
'''
列表嵌套
二维数组
'''
list2=['1班张三','二班网易']
list3=['三班和凯','四班后肯']
list4=['五班健康','六班森林']
biglist = [list2,list3,list4]
print(biglist)
# 嵌套列表提取
print(biglist[2])
print(biglist[2][1])
print('^'*30)
'''
作业
'''
i = 1
for i in range(101):
if i%3==2 and i%5==3 and i%7==2:
print(i)
print('^'*40)
'''
元组tuple
内容不可变
功能与列表类似
查询:元组[索引],index(),count(),len()
'''
# 定义单元素
tuple1 = (10,)
print(type(tuple1))
# 定义多元素
tuple2 = (10,20,30,40,50)
print(tuple2)
print(tuple2[1])
print(tuple2.index(10))
print(tuple2.count(20))
print(len(tuple2))
print('*'*40)
'''
字典
字典名称[key] = value
注:如果key存在则修改这个key对应的值;如果key不存在则新增此键值对。
字典的键一般为字符串,也可以是数值类型
key必须唯一 value可重复
集合
数据序列
'''
# 有数据字典
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}
# 空字典
dict2 = {}
dict3 = dict()
# 1、定义一个有数据的字典
person = {'name':'王大锤', 'age':28, 'gender':'male', 'address':'北京市海淀区'}
# 2、删除字典中的某个元素(如gender)
del person['gender']
# 3、打印字典
print(person)
dict4 = {1:10,2:20,3:30}
print(dict4[2])
# 字典增删查改
person['name']='迪丽热巴'
person['age'] = 27
person['address']='新疆'
print(person)
# 删除
del person['age']
print(person)
person.clear()
print(person)
'''
字典里有key 则修改
字典里没有key,则加入
'''
dict1['kk']='ddd'
print(dict1)
'''
查询 常规查询:
get(key,默认值) 存在 返回value,不存在返回默认值
keys(),用于获取所有key,保存为列表
values(),返回列表
items() 以[(),(),()]
'''
print(dict1.get('kkk', 6))
print(dict1.keys())
print(dict1.values())
print(dict1.items())
for k,v in dict1.items():
print(k,':',v)
'''
学生管理系统(简版)
需求:开个一个通讯录的管理系统,主要用于实现存储班级中同学的信息(姓名、年龄、电话)
知识点:==列表、字典、死循环==
延伸:在Python中,我们可以使用字典来保存一个人的基本信息。但是如果想保存多个人的信息,我们必须把列表和字典结合起来。
'''
# 定义一个变量 studen [{},{},{}]
# student =[{'name':'刘昊然','age':23,'mobile':10001},{'name':'刘昊然','age':23,'mobile':10001}]
'''
students = []
# 定义一个系统弹出功能,告诉用户实现什么功能
while True:
print('-'*50)
print('欢迎使用管理系统')
print('[1]添加学生信息')
print('[2]删除学生信息')
print('[3]查询学生信息')
print('[9]退出系统')
print('-'*50)
usernum = eval(input('请输入您要执行的编号:'))
if usernum == 1:
student_name = input('请输入学生姓名:')
student_age = int(input('请输入学生年龄:'))
student_mobile = int(input('请输入学生电话:'))
student = {}
student['name'] = student_name
student['age'] = student_age
student['mobile'] = student_mobile
students.append(student)
print(f'{student_name}信息添加成功')
elif usernum == 2:
student_name = eval(input('请输入学生姓名:'))
for i in students:
if i['name'] == student_name:
students.remove(i)
print(f'{student_name}信息删除成功')
break
else:
print(f'找不到{student_name}信息')
elif usernum == 3:
for i in students:
print(i)
else:
print('系统退出成功')
break
'''
'''
集合 自动去重
无序
空集合 set()
增加
add()
更新 update()
集合中删除:remove()删除指定元素,若数据不存在报错 discard()删除指定元素,若数据不存在不报错 pop()随即删除某个元素,并返回元素
交集
并集
'''
set1={10,20,30}
print(type(set1))
# 求集合中的交集、并集、差集
s1 = {'刘备', '关羽', '张飞', '貂蝉'}
s2 = {'袁绍', '吕布', '曹操', '貂蝉'}
# 求两个集合中的交集
print(s1 & s2)
# 求两个集合中的并集
print(s1 | s2)
# 求连个集合中的差集
print(s1 - s2)
print(s2 - s1)
'''
| **编号** | **函数** | **描述** |
| -------- | ------------------------ | ------------------------------------------------------------ |
| 1 | len() | 计算容器中元素个数 |
| 2 | del或del() | 根据索引下标删除指定元素 |
| 3 | max() | 返回容器中元素最大值 |
| 4 | min() | 返回容器中元素最小值 |
| 5 | range(start, end, step) | 生成从start到end(不包含)的数字,步长为 step,供for循环使用 |
| 6 | enumerate() | 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。 |
'''
# enumerate(),把一个序列类型(列表、元组、字符串)的数据构造成key:value结构,然后结合for循环进行遍历
list4 = [10, 20, 30, 40, 50]
for key,value in enumerate(list4):
print(f'{key+1}的值{value}')
## 4、序列类型之间的相互转换
#list()方法:把某个序列类型的数据转化为列表
'''
python
# 1、定义元组类型的序列
tuple1 = (10, 20, 30)
print(list(tuple1))
# 2、定义一个集合类型的序列
set1 = {'a', 'b', 'c', 'd'}
print(list(set1))
# 3、定义一个字典
dict1 = {'name':'刘备', 'age':18, 'address':'蜀中'}
print(list(dict1))
tuple()方法:把某个序列类型的数据转化为元组
# 定义一个列表类型的数据
list1 = ['a', 'b', 'c', 'd']
print(tuple(list1))
# 定义一个集合类型的数据
set1 = {10, 20, 30, 40}
print(tuple(set1))
set()方法:将某个序列转换成集合(但是要注意两件事 => ① 集合可以快速完成列表去重 ② 集合不支持下标)
# 定义一个列表类型的数据
list1 = ['a', 'b', 'c', 'd', 'a']
print(set(list1))
# 定义一个元组类型的数据
tuple1 = (10, 20, 30, 40)
print(set(tuple1))
'''
dict1 = {'name':'刘备', 'age':18, 'address':'蜀中'}
print(list(dict1))
list5 = [i for i in range(10)]
print(list5)
list6 = [i for i in range(10) if i%2==0]
print(list6)
list7 = [(i,j) for i in range(1,3) for j in range(0,3)]
print(list7)
dict5 = {i:i*2 for i in range(10)}
print(dict5)