今天在做一个函数的作业,题目如下:

        编写一个函数实现大写转小写,小写变大写,并且转换为镜像字符串,并且将字符串变为镜像字符串。 例如:’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操作字符串内容并重新输出的更多相关文章

  1. python操作字符串类型json的注意点

    python操作json的方法有json.dumps——将json对象(字典)转换为字符串对象json.loads——将字符串对象转换为json对象(字典)如果定义json对象jsonstring1= ...

  2. [python] - 读取文件内容,并输出

    1.读取文件,并逐行输出内容,代码如下: # coding=gbk import os path = 'E:\python_practice' os.chdir(path) fname = raw_i ...

  3. es的查询、排序查询、分页查询、布尔查询、查询结果过滤、高亮查询、聚合函数、python操作es

    今日内容概要 es的查询 Elasticsearch之排序查询 Elasticsearch之分页查询 Elasticsearch之布尔查询 Elasticsearch之查询结果过滤 Elasticse ...

  4. python基础之 列表、元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码

    本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...

  5. Python:常见操作字符串的函数

    Python中提供了很多操作字符串的函数: string = "hello, my dear python!" string.capitalize() #将字符串中的第一个字母大写 ...

  6. Python操作文件、文件夹、字符串

    Python 字符串操作 去空格及特殊符号 s.strip().lstrip().rstrip(',') 复制字符串 #strcpy(sStr1,sStr2) sStr1 = 'strcpy' sSt ...

  7. python字符串内容替换的方法(转载)

    python字符串内容替换的方法 时间:2016-03-10 06:30:46来源:网络 导读:python字符串内容替换的方法,包括单个字符替换,使用re正则匹配进行字符串模式查找与替换的方法.   ...

  8. Python第一天——入门Python(2)字符串的简单操作

    数据的操作 字符串的一些常用操作: 1 1 #!/usr/bin/env python 2 # #coding=utf-8 3 # 4 # test='hello world' 5 # print(t ...

  9. 第二百九十五节,python操作redis缓存-字符串类型

    python操作redis缓存-字符串类型 首先要安装redis-py模块 python连接redis方式,有两种连接方式,一种是直接连接,一张是通过连接池连接 注意:以后我们都用的连接池方式连接,直 ...

随机推荐

  1. 【luogu P3623 [APIO2008]免费道路】 题解

    题目链接:https://www.luogu.org/problemnew/show/P3623 说是对克鲁斯卡尔的透彻性理解 正解: 先考虑加入水泥路,然后再考虑加入剩下必须要加入的最少鹅卵石路. ...

  2. 淘宝前端框架kissyui

    http://docs.kissyui.com/1.4/docs/html/guideline/why-kissy.html

  3. 在windows service中启动类型“Automatic” 和 “Automatic (Delayed start)” 有何不同?

    问题: When installing Windows services there are two options for automatically starting a Windows serv ...

  4. 微信小程序获取手机信息

    wx.getSystemInfo({ success: function (res) { console.log(res.model)//手机型号 console.log(res.pixelRatio ...

  5. 用javascript编写简单银行取钱存钱流程(函数)

    const readline = require('readline-sync')//引用readline-sync let arr = [[], []]; //登陆 let add = functi ...

  6. LeetCode 中级 - 组合总和II(105)

    给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的每个数字在每个组合中只能使用一次. ...

  7. swift3.0 保存图片到本地,申请权限

    1.info中写上 <key>NSCameraUsageDescription</key> <string>需要您的同意才能读取媒体资料库</string&g ...

  8. ffmreg thinkphp 控制器 获取音频视频详细信息(获取时长)

    FFmpeg下载:http://ffmpeg.zeranoe.com/builds/ 下载并解压FFmpeg文件夹: 打开你想安装的任意磁盘,例如:d盘.新建一个名为“ffmpeg”的文件夹,将第二步 ...

  9. laydate5.0 设置最大最小值

    由于新版的laydate时间插件在初始化时已设置时间最大最小范围,且生成对象,无法重新渲染改变其日期最大最小值. 有网友经实验贴出如下方法可达成目的,故做记录. //开始时间 var startDat ...

  10. Redis,传统数据库,HBase,Hive区别联系

    首先介绍各个数据库: Redis: 传统数据库: HBase: Hive: