在你所提问的内容中,你提供的代码很乱。我大概看了下,你的代码功能大概是反转字符串内容。主要工作代码是先把字符串转换为list,然后join起来,再把反转好的字符串输出到屏幕上。是这样吧?
成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都做网站、网站制作、成都外贸网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的蠡县网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
但有一点你要注意:
你所在的python环境是2.7,而你写的代码环境是python3。你要在python2下执行是不成功的。
我没测试你的代码,因为时间的原因(主要是你的代码太乱,太糟糕!让回答者花不必要的时间去做不必要的思考。)
以下是我给你的一些参考,比如,按你的思路去做的话(定义一个函数,功能是先把字符串转换为list,然后join起来,再把反转好的字符串输出到屏幕上。)。代码我们可以这样写:
python3.6环境下
#因代码中有f-string格式,所以至少要python3.6环境
#定义函数reverseStrtxt
def reverseStrtxt(strtxt):
newStrtxt =[] #初始化空列表
index = len(strtxt) #返回strtxt的项目数
while index:
index -= 1 #index=index-1
newStrtxt += strtxt[index] #newStrtxt=newStrtxt+strtxt[index]
return f'{"".join(newStrtxt)}' #返回反转后的字符串
if __name__=='__main__':
strtxt='hello,how are you ? Fine.'
print(reverseStrtxt(strtxt))
python2环境下
#可运行在python2环境下
#定义函数reverseStrtxt
def reverseStrtxt(strtxt):
newStrtxt =[] #初始化空列表
index = len(strtxt) #返回strtxt的项目数
while index:
index -= 1 #index=index-1
newStrtxt += strtxt[index] #newStrtxt=newStrtxt+strtxt[index]
return "".join(newStrtxt) #返回反转后的字符串
if __name__=='__main__':
strtxt='hello,how are you ? Fine.'
print reverseStrtxt(strtxt)
我们把以上代码优化下:
python3环境
#可运行在python3环境下
#定义函数reverseStrtxt
def reverseStrtxt(strtxt):
newStrtxt = '' #初始化空字符串
index = len(strtxt) #返回strtxt的项目数
while index:
index -= 1 #index=index-1
newStrtxt += strtxt[index] #newStrtxt=newStrtxt+strtxt[index]
return newStrtxt #返回反转后的字符串
if __name__=='__main__':
strtxt='hello,how are you ? Fine.'
print(reverseStrtxt(strtxt))
python2环境
#可运行在python2环境下
#定义函数reverseStrtxt
def reverseStrtxt(strtxt):
newStrtxt = '' #初始化空字符串
index = len(strtxt) #返回strtxt的项目数
while index:
index -= 1 #index=index-1
newStrtxt += strtxt[index] #newStrtxt=newStrtxt+strtxt[index]
return newStrtxt #返回反转后的字符串
if __name__=='__main__':
strtxt='hello,how are you ? Fine.'
print reverseStrtxt(strtxt)
或
我们还可以更简单
#用切片的速度最快
txtstr='hello, how are you ? Fine . '
str_lst=list(txtstr)
print(''.join(str_lst[::-1]))
print('hello, how are you ? Fine . '[::-1])
要反转字符串的方法很多,但个人建议用切片,速度最快,而且代码简洁,易读。
其实python在这方面是很灵活的。
纯手工,如果对你有帮助,望采纳!
while True:
n=str(input())
if len(str(int(n))) == len(n):
print(int(n[::-1]))
else:
print('前导符不能为0!')
按位反转即“按位取反”,特指按位取反运算符 ~,这 是 一 元 运 算 法 ,对 数 据 的 每 个 二 进 制 位 取 反 ,由此【1变为 0,把 0变 为 1】。 例 如 :0010101~1101010 值得注 意的数 ,~ 运 算 符 与 - 运 算 符 不 同 ,~ 21≠ -21。
[::-1]实现翻转功能。
Python 的切片功能实际上比很多程序员认为的更强大。
a = m [ 0 : 100 : 10 ] # 带步进的切片(步进值=10)
注意:步进值为step
当step 0 时
切片从 start(含start)处开始,到end(不含end)处结束,**从左往右**,每隔(step-1)(索引之间的差仍为step,但相隔的元素是step-1个)个元素进行一次截取。
这时,start 指向的位置应该在end指向的位置的左边,否则返回值为空
当step 0 时
切片从 start(含start)处开始,到end(不含end)处结束,**从右往左**,每隔(step-1)(索引之间的差仍为step,但相隔的元素是step-1个)个元素进行一次截取。
这时,start 指向的位置应该在end指向的位置的右边,否则返回值为空
name = "Hello there, my name is Daniel Fu and I`m 33 years old."print(name[4]) # 字母o(hello的最后一个字母),从左至右第5个字母(因为index是从0开始)print(name[-3]) # 字母l(old中的l),index为负数表示从右至左第三个字母(-0和0没有区别,因此负index是从-1开始的)print(name[6:11]) # 结果为"there", 即从index6开始,到index11结束(但不包含11)的所有内容print(name[:5]) # 结果为"Hello",省略起始值,则表示从0开始print(name[45:]) # 结果为"years old.", 省略终止值表示从index45开始,直至字符串结束的所有内容print(name[:]) # 省略起止值,即返回整个字符串print(name[::5]) # 结果为"H e a nmy ",第三个参数表示结果中每隔N(此例为5)个字母返回一个print(name[::-2]) # 结果为".l re 3mIdau enDs mny eetolH",表示将字符串反转之后,每隔N(此例为2)个字母返回一个