python操作字符串内容并重新输出
今天在做一个函数的作业,题目如下:
编写一个函数实现大写转小写,小写变大写,并且转换为镜像字符串,并且将字符串变为镜像字符串。 例如:’A’变为’Z’,’b’变为’y 示范字符串: ”sdSdsfdAdsdsdfsfdsdASDSDFDSFa”字符串大写变小写 小写变大写。
总结起来就是输入一个字符串,将其中每个元素做大小写变换和转换,然后按照顺序重新输出。
一开始我的思路是分别建一个26字母大写、小写的字符串,通过轮询你输入的字符串,如果元素是大写:则变成小写,并依据我创建的字母字符串索引做镜像转换。小写思路参照大写。
问题在于输出到新的字符串当中,我也想到了是定义一个空字符串,然后拼接的方式来完成输入的整个字符串转换,但是最后卡在了怎么获取处理后的元素。
最后参照了老师的代码才发现原因还是自己对于for循环理解不够深入,for循环中用变量去轮询字符串,忘记了变量也可以重新赋值。
最后完善了自己的代码如下:
l_upper=[chr(i) for i in range(65,91)]
l_lower=[chr(i) for i in range(97,123)] def mirror_image(l): #定义函数
print(l) #输出输入字符串
l1='' #定义空字符串,用于转换后存储
for i in l: #轮询字符串,i本身也是变量!!!!
if i in l_lower:
i=i.upper() #小写转大写
index_i=l_upper.index(i) #获取索引
i=l_upper[25-index_i] #镜像转换
l1+=i
else:
i=i.lower() #大写转小写
index_i = l_lower.index(i)
i = l_lower[25 - index_i]
l1+=i
print(l1) mirror_image('aBxdeF')
再附上老师的两套代码:
#方法一:根据Ascii编码解题
def change_string(s):
new_s=''
for item in s:
if item.islower():
num=ord(item)-32#转变为大写
num=155-num#大写字母互为镜像文字的数值之和为155
new_s+=chr(num)
else:
num=ord(item)+32#转为小写
num=219-num#大写字母互为镜像文字的数值之和为219
new_s+=chr(num)
return new_s #方法二:利用字符串的内置方法来解决
def change_str_2(s):
s=s.swapcase()#互换大小写 in_tab='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
out_tab='ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba'
reflect=str.maketrans(in_tab,out_tab)#建立翻译表 s=s.translate(reflect)#根据翻译表进行翻译
return s if __name__ == '__main__':
s='sdSdsfdAdsdsdfsfdsdASDSDFDSFa'
new_s=change_string(s)
# new_s=change_str_2(s)
print("转换之前的字符串:",s)
print("转换之后的字符串:",new_s)
python操作字符串内容并重新输出的更多相关文章
- python操作字符串类型json的注意点
python操作json的方法有json.dumps——将json对象(字典)转换为字符串对象json.loads——将字符串对象转换为json对象(字典)如果定义json对象jsonstring1= ...
- [python] - 读取文件内容,并输出
1.读取文件,并逐行输出内容,代码如下: # coding=gbk import os path = 'E:\python_practice' os.chdir(path) fname = raw_i ...
- es的查询、排序查询、分页查询、布尔查询、查询结果过滤、高亮查询、聚合函数、python操作es
今日内容概要 es的查询 Elasticsearch之排序查询 Elasticsearch之分页查询 Elasticsearch之布尔查询 Elasticsearch之查询结果过滤 Elasticse ...
- python基础之 列表、元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码
本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...
- Python:常见操作字符串的函数
Python中提供了很多操作字符串的函数: string = "hello, my dear python!" string.capitalize() #将字符串中的第一个字母大写 ...
- Python操作文件、文件夹、字符串
Python 字符串操作 去空格及特殊符号 s.strip().lstrip().rstrip(',') 复制字符串 #strcpy(sStr1,sStr2) sStr1 = 'strcpy' sSt ...
- python字符串内容替换的方法(转载)
python字符串内容替换的方法 时间:2016-03-10 06:30:46来源:网络 导读:python字符串内容替换的方法,包括单个字符替换,使用re正则匹配进行字符串模式查找与替换的方法. ...
- Python第一天——入门Python(2)字符串的简单操作
数据的操作 字符串的一些常用操作: 1 1 #!/usr/bin/env python 2 # #coding=utf-8 3 # 4 # test='hello world' 5 # print(t ...
- 第二百九十五节,python操作redis缓存-字符串类型
python操作redis缓存-字符串类型 首先要安装redis-py模块 python连接redis方式,有两种连接方式,一种是直接连接,一张是通过连接池连接 注意:以后我们都用的连接池方式连接,直 ...
随机推荐
- Mabatis入门案例
log4j.properties # Global logging configuration #\u5728\u5f00\u53d1\u9636\u6bb5\uff0c\u8bbe\u7f6e\u4 ...
- LVS的DR模式负载均衡
参考项目:http://www.cnblogs.com/along21/p/7833261.html#auto_id_3 LVS的DR模式实现负载均衡 1.环境 lvs-server :192.168 ...
- 【题解】洛谷P1315 [NOIP2011TG] 观光公交(前缀和+贪心)
次元传送门:洛谷P1315 思路 思路大概想到了 可是代码实现却没想到 所以参考题解了 D2T3的贪心果然有难度 我们考虑在每次用加速器有两种情况 到下一个点还需要等待:以后的时间就不再影响了 到下一 ...
- Java实现 lower_bound() 和 upper_bound()
Java实现 lower_bound() 和 upper_bound() lower_bound() 函数 lower_bound() 在 [begin, end) 进行二分查找,返回 大于或等于 t ...
- textarea中输入字数的限制
<textarea id="area" name="ss" placeholder="请输入文本内容" rows="10&q ...
- kafka topic制定规则
kafka topic的制定,我们要考虑的问题有很多,比如生产环境中用几备份.partition数目多少合适.用几台机器支撑数据量,这些方面如何去考量?笔者根据实际的维护经验,写一些思考,希望大家指正 ...
- android软件开发之获取本地音乐属性
歌曲的名称 :MediaStore.Audio.Media.TITLString tilte = cursor.getString(cursor.getColumnIndexOrThrow(Media ...
- 纯js轮播图练习-3,类似于淘宝海报带小圆点轮播图
基于js和css,跟着网上的视频教程,结合自己想要的效果,做出了一个类似于淘宝海报的效果. 如图:淘宝首页 自己做的: 代码: <!DOCTYPE html> <html> & ...
- s3c2440串口详解
一.UART原理说明 通用异步收发器简称UART(Universal Asynchronous Receiver/Transmitter),它用来传输串行数据:发送数据时,CPU将并行数据写入UART ...
- C语言经典程序100例
-------------------------------------------------------------------------------- [程序1] 题目:古典问题:有一对兔子 ...