这个代码怎么写啊大神们
本帖最后由 李二瓶 于 2016-9-25 22:51 编辑我刚刚学到python零基础14课,遇到了这样一道题不知道怎么写。
题目是:
输入一个带有数字的字符串后,根据数字从大到小将字符串排列,并且数字只代表位置而不出现在打印的结果中。
例如我输入“is2,,t1his,boy4,a3”就会打印“this is a boy”
本帖最后由 void°念 于 2016-9-26 19:43 编辑
result = {}
def MySort(args):
for each in range(len(args)):
for i in range(len(args)):
if args.isdigit():
result] = args + args
for i in range(len(result) + 1):
if result.get(str(i)):
print(result, end=" ")
inputString = input("请输入字符串:")
inputList = inputString.split(",")
MySort(inputList)
#胡乱写的 因为题目条件不是很明确 所以写的不是很严谨
print("this is a boy"){:10_245:} superFeng777 发表于 2016-9-26 22:40
print("this is a boy")
这个办法简单粗暴 void°念 发表于 2016-9-26 19:42
这个能讲解一下嘛.... void°念 发表于 2016-9-26 19:42
能不能请你说说这个代码的思路??思路不好说的话说说步骤的作用好了/感激脸 李二瓶 发表于 2016-10-9 22:12
能不能请你说说这个代码的思路??思路不好说的话说说步骤的作用好了/感激脸
没什么特别思路 就是按题目要求来
首先按逗号把字符串分开,然后每个单词里遍历找到数字 把除数字之外的部分和这个数字一起存在字典里,数字是键 单词是值最后把字典里内容输出
不过我这边比较简单 默认输入格式是按逗号分割然后每个单词只有一个数字 我的方法:
str1 = 'is2,,t1his,boy4,a3'
list1 = str1.split(',')
list2 =[]
for i in range(len(list1)):
for each in list1:
if str(i + 1) in each:
list2.append(each.replace(str(i + 1), ''))
list1.remove(each)
break
print(' '.join(list2))
冬雪雪冬 发表于 2016-10-10 13:48
我的方法:
我刚刚测试了一下,然后发现只能是this is a boy 这个字符串可以实现,但是这个只是我举的一个例子喔~ 李二瓶 发表于 2016-10-10 22:46
我刚刚测试了一下,然后发现只能是this is a boy 这个字符串可以实现,但是这个只是我举的一个例子喔~
字符串要求是英文逗号隔开,当然也可修改程序使用中文逗号 冬雪雪冬 发表于 2016-10-10 22:59
字符串要求是英文逗号隔开,当然也可修改程序使用中文逗号
恩啊~我的意思是输入任意带有数字的语句都能像我举出的例子一样实现排序功能 李二瓶 发表于 2016-10-10 23:25
恩啊~我的意思是输入任意带有数字的语句都能像我举出的例子一样实现排序功能
你是说用input语句吗,把第一行改为:str1 = input('请输入字符串:')
请输入字符串:is2,pow3er,1Knowledge
Knowledge is power
页:
[1]