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方式,有两种连接方式,一种是直接连接,一张是通过连接池连接 注意:以后我们都用的连接池方式连接,直 ...
随机推荐
- 用python实现ping
#!/usr/bin/env python #coding=utf-8 import os import argparse import socket import struct import sel ...
- MongoDB的角色作用(1)
MongoDB的角色作用: 经过大量血的教训,一个分片配置两个副本集时(一个是primary一个是secondary),如果primary挂掉,secondary是不会升级的,必须要加上一个不存储数据 ...
- [转]C#如何获取客户端IP地址
代码如下: /// <summary> /// 获取客户端IP地址 /// </summary> /// <returns></returns> ...
- Objective-C中,ARC下的 strong和weak指针原理解释
Objective-C中,ARC下的 strong和weak指针原理解释 提示:本文中所说的"实例变量"即是"成员变量","局部变量"即是& ...
- 使用BSRR和BRR寄存器直接操作STM32的I/O端口
STM32的每个GPIO端口都有两个特别的寄存器,GPIOx_BSRR和GPIOx_BRR寄存器,通过这两个寄存器可以直接对对应的GPIOx端口置'1'或置'0'. GPIOx_BSRR的高16位中每 ...
- FreeRTOS 和uCOS II的简单比较
转载:http://www.viewtool.com/bbs/forum.php?mod=viewthread&tid=114 这是两种RTOS, 现在粗略比较一下. freeRTOS比uCO ...
- 【js】数组添加与删除
做个表格,就会容易记忆四种方法. 返回值 是否改变数组长度 位置 功能 push() 改变数组的长度 是 末位 添加 unshift() 改变数组的长度 是 首位 添加 pop( ...
- grid 布局的使用
grid 布局的使用 css 网格布局,是一种二维布局系统. 浏览器支持情况:老旧浏览器不支持, 概念: 网格容器.元素应用dispalay:grid,它是所有网格项的父元素. <div cla ...
- you don't have permission to access ...........on this server问题解决
因为刚刚开始使用新架构的项目,于是把老项目统统替换成了新的项目.配置好后,本地登录页面报 you don't have permission to access ...... on this serv ...
- chromium之task
// A task is a generic runnable thingy, usually used for running code on a // different thread or fo ...