python学习笔记P33-40

2023-11-21 14:40
文章标签 python 学习 笔记 40 p33

本文主要是介绍python学习笔记P33-40,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

P32 字符串操作

在这里插入图片描述

  • 查找

    '''
    https://www.abbskabsdbasdhbeqbduwid.gif
    find: 从左向右查找:只要遇到一个符合要求的,则返回位置,如果没有找到任何符合要求的,则返回-1
    rfind:从右向左查找,只要遇到一个符合要求的,则返回位置,如果没有找到任何符合要求的,则返回-1
    count:统计指定字符的个数
    index与find的区别: index也是表示查找,但是如果找不到会报错
    '''path = 'https://www.abb_skabsdbasdhbeqbduwid.gif'# find,index,rfind,rindex
    i = path.find('_')
    print(i)
    image_name = path[i + 1:]
    print(image_name)#
    i = path.find('#')
    print(i)# rfind
    i = path.rfind('.')
    zhui = path[i:]
    print(zhui)'''
    查找字符串中有几个'.'
    '''n = path.count('.')
    print(n)# i = path.index('#')
    # print(i)i = path.find('wid')    #可以填多个字母,返回的值是第一个字母所在的位置
    print(i)
    
  • 判断字符串

'''
判断:startswith,endswith,isalpha,isdigit,isalnum,isspace
返回值都是布尔类型,True False
'''s = 'skabsdbasdhbeqbduwid.gif'
result = s.startswith('abc')  # False
# 判断是否是以xxx开头
print(result)result = s.endswith('gif')
print(result)'''
模拟文件上传,键盘输入上传文件的名称(abc.jpg),判断文件名(abc)是否大于6位以上,扩展名是否是:jpg,gif,png格式
若不是,则提示上传失败,若名字不满足条件,而扩展名满足条件则随机生成6位数字组成的文件名,打印成功上传
'''
import randomfile = input('请输入上传的文件名:')
# 判断扩展名
if file.endswith('jpg') or file.endswith('gif') or file.endswith('png'):# 判断文件名是否满足条件:先取出名字i = file.find('.')name = file[:i]# 若文件名小于6,可以正常输出if len(name) < 6:print(file)else:n = random.randint(100000,999999)name1 = str(n) + file[i:]print(name1)
else:print('扩展名错误,上传失败!')
  • 字母和数字的组合
# 字母和数字的组合
filename = ''
s = 'QWERTYUIOASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890'
for a in range(6):index = random.randint(0,len(s)-1)  # 字符串从0开始数 随机产生下标filename += s[index]    # 获取下标匹配的字母
print(filename)
  • 综合练习,把随机数字改成随机数字+字母
'''
模拟文件上传,键盘输入上传文件的名称(abc.jpg),判断文件名(abc)是否大于6位以上,扩展名是否是:jpg,gif,png格式
若不是,则提示上传失败,若名字不满足条件,而扩展名满足条件则随机生成6位数字字母组成的文件名,打印成功上传
'''import randomfile = input('输入文件名:')
# 判断扩展名是否正确
if file.endswith('jpg') or file.endswith('gif') or file.endswith('png'):# 获取文件名i = file.find('.')name = file[:i]if len(name) > 6:print(file)else:filename = ''s = 'QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890'for a in range(6):index = random.randint(0, len(s) - 1)filename += s[index]file = filename + file[i:]print('成功上传%s文件' % file)else:print('扩展名错误,上传失败')

P33 切片操作

  • 字符串输入
  • 字符串输出
# 转义字符
print('haha\nhaha')
print('haha\thaha')
print('haha\\haha')
print('haha\'hehehe\'')
print("haha\"h")
# haha
# haha
# haha haha
# haha\haha
# haha'hehehe'
# haha"h# 字符串
s1 = 'hello'
s2 = s1
s3 = 'hello'
s4 = 'hello1'print(s1,s2,s3)print(id(s1))   # id--地址
print(id(s2))
print(id(s3))
print(id(s4))
# is
# is比较的是地址
print(s1 is s2)
print(s1 is s4)s1='world'
print(s1,s2,s3)

# 字符串 截取s1 = 'ABCDEF'print(s1[4])  # E
print(s1[0])  # Aprint(s1[-1])  # Fprint(s1[-1], s1[5])print(len(s1))  # 通过len可以获取字符串的长度'''
字符串索引机制:
1. 0~len(s)-1
2. -len(s)~-1
'''

在这里插入图片描述

'''
切片:字符串,列表
格式:字符串变量[start:end:step]    默认从左向右一个个取
step:
1. 步长
2. 方向 step 正数 从左向右step 负数 从右向左'''s = 'ABCDEFG'
print(s[1:4])  # B的索引是1,D的索引是3,这里取1:4是由于左闭右开
print(s[0:5])  # ABCDE
print(s[:5])  # 初始值为0# print(s[-1:-4]) 起始值和结束值出错
print(s[-3:-1])  # EF
print(s[-3:])  # 从index=-3到结尾# 长得一样,地址也一样
print(s[:])
print(s)print(id(s[:]))
print(id(s))print(s[1:-1])  # BCDEFprint('*-' * 20)print(s[:-1:2])  # ACE# BDF
print(s[1:-1:2])
# BF
print(s[1::3])
# AE
print(s[::4])
print(s[:-2:4])# step为负数
print('**' * 20)
# ABCDEFG--->GFEDCBA
print(s[::-1])
# GECA
print(s[::-2])print(s[0:6:-2])  # 从index=0 从右往左取 所以取不到值
print(s[6:0:-2])  # GECA
print(s[6::-2])  # GECAprint(s[-3:-6:-2])  # EC
print(s[-3::-2])    # ECAprint(s[1:4:-2])    #取不到值,1-->4是往右,-2是往左

P34 字符串判断操作

'''
判断:startwith,endswith,isalpha,isdigit,isalnum,isspace
返回值都是布尔类型 True False
'''# isalpha 判断是否全为字母组成
s = 'A1234'
result = s.isalpha()
print(result)  # False# s必须是字符串才能调用这种方法
s = '100'
result = s.isdigit()  # has is返回的都是布尔类型
print(result)  # True# isalnum 字母和数字
s = 'A1234'
result = s.isalnum()# isspace 判断是否是空白
s = 'ABC  '
result = s.isspace()
print(result)  # False# isupper 判断是否全部是大写字母
s = 'HELLO'
result = s.isupper()
print(result)# islower 判断是否全部为小写字母
s = 'Hello'
result = s.islower()
print(result)
  • 练习
'''
admin123 15811119999 200325
用户名或者手机号码登陆+密码,用户名:全部小写,首字母不能是数字,长度必须6位以上
手机号码:纯数字 长度必须为11位
密码 必须是6位数字以上符合条件则进入下层验证:
判断用户名+密码 是否正确,则成功,否则登陆失败
'''flag =True
while flag:name = input('用户名或手机号')# 用户名or手机号if name.islower() and not name[0].isdigit() and len(name)>6 or name.isdigit() and len(name)==11:# 密码输入错误,可以输入多次while True:password = input('密码')if password.isdigit() and len(password)==6:if (name=='admin123' or name=='15811119999') and password=='200325':print('登陆成功!')flag = False    #可以方便跳出循环breakelse:print('用户名或密码错误,登陆失败')breakelse:print('密码格式不对,登陆失败')else:print('用户名不符合要求')

P36 替换切割分母转换

在这里插入图片描述

'''
空格处理:
ljust,rjust,center, 添加空格控制字符串的对齐方式
lstrip,rstrip,strip 删除字符串左侧或者右侧的空格
字符串拼接:join
'''# username = input('用户名')
# print(len(username))    # 空格也会提交到数据库里# 空格处理
s = ' admin '
result = s.strip()
print(len(s))
print(result)
print(len(result))# lstrip去除左侧空格
result=s.lstrip()
print(result)
print(len(result))s='hello world'
# 给定30个字符,把hello world放在正中央的位置
result= s.center(30)
print(result)# 给定30个字符,把hello world放在最左侧的位置
result= s.ljust(30)
print(result)# 给定30个字符,把hello world放在最右侧的位置
result= s.rjust(30)
print(result)
'''
替换内容:replace(old,new,count) 默认全部替换,也可以通过count指定次数
切割字符串:split,rsplit,splitlines,partition,rpartition
split('分隔符',maxsplit),返回的结果是一个列表,maxsplit 最多的分割次数
同理:rsplit
splitlines:按照行分割
修改大小写:capitalize,title,upper,lower
'''# 替换A,阿叔    正则表达式或用循环+列表
s = 'A说:阿叔唱歌,阿叔你来跳舞'
result = s.replace('阿叔', '**')
print(result)  # A说:**唱歌,**你来跳舞
result = s.replace('阿叔', '**', 1)
print(result)
# A说:**唱歌,阿叔你来跳舞#
s = 'A 阿叔 啊哈'
result = s.split(' ')
print(result)  # ['A', '阿叔', '啊哈']
result = s.rsplit(' ')
print(result)  # ['A', '阿叔', '啊哈']
result = s.split(' ', 1)
print(result)  # ['A', '阿叔 啊哈']
result = s.rsplit(' ', 1)
print(result)  # ['A 阿叔', '啊哈']s = '''阿叔跳舞
阿叔唱歌
阿叔学习
阿叔吃饭
'''
# ['阿叔跳舞', '阿叔唱歌', '阿叔学习', '阿叔吃饭']
# 按行切割
result = s.splitlines()
print(result)s = 'A 阿叔 啊哈'
result = s.partition(' ')
print(result)  # ('A', ' ', '阿叔 啊哈')s = 'hello world'
result = s.title()  # 把每个首字母改成大写
# Hello World
print(result)result = s.upper()  # 把所有字母转成大写
print(result)
# HELLO WORLDs = 'HELLO'
result = s.lower()  # 把所有字母转成小写
print(result)
# hellos = 'hello world'
result = s.capitalize()  # 把第一个单词首字母大写
print(result)
# Hello world

P37 字符串格式化

'''
格式化;
1.%d %s %f..print('巴拉巴拉:%s' % xxx)
2.format
'''name = '赵丽颖'
age=18result = '美女{}今年{}岁'.format(name,age)
print(result)# 使用数字填充,从0开始计数
result = '美女{0}今年{1}岁,我也{1}岁'.format(name,age)
print(result)# 变量名形式,format的参数必须关键字参数(关键字参数指的是xxx=‘xxx’这种格式)
result = '美女{name}今年{age}岁,我也{age}岁'.format(name='赵丽颖',age=18)
print(result)name='小明'
score_chinese=100
score_math=99# 索引方式
s= '{0}本次考试数学分数是:{2},语文分数是:{1},英语分数是:{2}'.format(name,score_chinese,score_math)
print(s)# 关键字方式
s= '{name}本次考试数学分数是:{score_math},语文分数是:{score_chinese},英语分数是:{score_math}'.format(name='小明',score_math=99,score_chinese=100)
print(s)
  • 数字必须是大于等于0的整数
  • 带数字的替换字段可以重复使用
  • 数字形式的简单字段名相当于把format中的所有位置参数整体当作一个元组,通过字段名中的数字进行取值。即{0}等价于tuple{0},所以大括号内的数字不能越界

P38-39 模拟论坛

'''
模拟论坛
输入用户名:小白
反复回复:
1. 回复内容不能为空     len(lun.strip())==0
2. 里面不能存在敏感词汇
3. 最多评论20个字,剩余多少个字      不能超过20个字
4. 回复的内容前后不能有空格
'''msg = input('发表一句话:')
print('-' * 50)
print('以下为回复内容:')
while True:# 输入用户名username = input('用户名:')while True:# 输入回复内容comment = input('评论:')comment = comment.strip()# 验证内容if len(comment.strip()) != 0:# 验证长度是否超出20个字if len(comment.strip()) <= 20:# 是否存在敏感词汇comment = comment.replace('丑陋', '**')print('\t{}发表的评论是:\n\t{}'.format(username,comment))breakelse:print('不能超过20字')else:print('评论内容不能为空')# 成功则发出评论,否则重新输入

P40 列表基础

  • 列表的应用场景
    | 容器:存储多个数据
    在这里插入图片描述
'''
如何定义一个列表:
1. 空列表:[]
2. 有内容的列表:['A','B','C'],[1,2,3,4],[3.5,9.9,10],[[],[],[]]
列表里面可以放列表,因为列表也是一种数据类型
数据类型;
int 1,2,3,4,5,6
float: 1.1,2.6
str:''
bool: True,False
list
'''list1 = []
# <class 'list'>
# print(type(list1))
list2 = ['牛奶', '面包', '火腿肠', '辣条', '臭豆腐', '食盐', '泡面']# 获取列表里面的元素,通index获取对应的元素
print(list2[3])
print(list2[0])# 切片
print(list2[:2])  # 牛奶面包
print(list2[2:4])  # ['火腿肠', '辣条']
# 臭豆腐面包
print(list2[1::3])  # ['面包', '臭豆腐']
print(list2[::-3])  # ['臭豆腐', '面包']
# 食盐辣条
print(list2[-2:-5:-2])  # ['食盐', '辣条']
# 牛奶辣条泡面
print(list2[::3])  # ['牛奶', '辣条', '泡面']
# 食盐牛奶
print(list2[-2::-5])  # ['食盐', '牛奶']

这篇关于python学习笔记P33-40的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/402997

相关文章

使用Python绘制蛇年春节祝福艺术图

《使用Python绘制蛇年春节祝福艺术图》:本文主要介绍如何使用Python的Matplotlib库绘制一幅富有创意的“蛇年有福”艺术图,这幅图结合了数字,蛇形,花朵等装饰,需要的可以参考下... 目录1. 绘图的基本概念2. 准备工作3. 实现代码解析3.1 设置绘图画布3.2 绘制数字“2025”3.3

python使用watchdog实现文件资源监控

《python使用watchdog实现文件资源监控》watchdog支持跨平台文件资源监控,可以检测指定文件夹下文件及文件夹变动,下面我们来看看Python如何使用watchdog实现文件资源监控吧... python文件监控库watchdogs简介随着Python在各种应用领域中的广泛使用,其生态环境也

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

Java调用Python代码的几种方法小结

《Java调用Python代码的几种方法小结》Python语言有丰富的系统管理、数据处理、统计类软件包,因此从java应用中调用Python代码的需求很常见、实用,本文介绍几种方法从java调用Pyt... 目录引言Java core使用ProcessBuilder使用Java脚本引擎总结引言python

python 字典d[k]中key不存在的解决方案

《python字典d[k]中key不存在的解决方案》本文主要介绍了在Python中处理字典键不存在时获取默认值的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录defaultdict:处理找不到的键的一个选择特殊方法__missing__有时候为了方便起见,

使用Python绘制可爱的招财猫

《使用Python绘制可爱的招财猫》招财猫,也被称为“幸运猫”,是一种象征财富和好运的吉祥物,经常出现在亚洲文化的商店、餐厅和家庭中,今天,我将带你用Python和matplotlib库从零开始绘制一... 目录1. 为什么选择用 python 绘制?2. 绘图的基本概念3. 实现代码解析3.1 设置绘图画

Python pyinstaller实现图形化打包工具

《Pythonpyinstaller实现图形化打包工具》:本文主要介绍一个使用PythonPYQT5制作的关于pyinstaller打包工具,代替传统的cmd黑窗口模式打包页面,实现更快捷方便的... 目录1.简介2.运行效果3.相关源码1.简介一个使用python PYQT5制作的关于pyinstall

使用Python实现大文件切片上传及断点续传的方法

《使用Python实现大文件切片上传及断点续传的方法》本文介绍了使用Python实现大文件切片上传及断点续传的方法,包括功能模块划分(获取上传文件接口状态、临时文件夹状态信息、切片上传、切片合并)、整... 目录概要整体架构流程技术细节获取上传文件状态接口获取临时文件夹状态信息接口切片上传功能文件合并功能小

python实现自动登录12306自动抢票功能

《python实现自动登录12306自动抢票功能》随着互联网技术的发展,越来越多的人选择通过网络平台购票,特别是在中国,12306作为官方火车票预订平台,承担了巨大的访问量,对于热门线路或者节假日出行... 目录一、遇到的问题?二、改进三、进阶–展望总结一、遇到的问题?1.url-正确的表头:就是首先ur

基于Python实现PDF动画翻页效果的阅读器

《基于Python实现PDF动画翻页效果的阅读器》在这篇博客中,我们将深入分析一个基于wxPython实现的PDF阅读器程序,该程序支持加载PDF文件并显示页面内容,同时支持页面切换动画效果,文中有详... 目录全部代码代码结构初始化 UI 界面加载 PDF 文件显示 PDF 页面页面切换动画运行效果总结主