这段小代码执行后(在python3.1环境下),只有光标在一闪一闪,既不报错,也不显示结果。
但如果把temp=""改为temp=" ",就能显示结果。
一行一行在测试环境下运行也都正常的。
这是为什么呢?
# 随机读取单词中的字母,重新排列 import random word=input("输入一个英文单词:") x=len(word) temp="" while len(temp)<x: letter=word[random.randrange(0,(x-1))] if letter not in temp: temp = temp+letter print(temp) input("\t按回车键结束。。。")
下面的是前几天练习的代码。
简化你的代码可以这样:
我知道错在哪里了。random.randrange()的上下取值理解不对。
正确的是这样(而且这段程序写得还有个问题:这个单词不能有重复的字母):
#随机读取单词中的字母,重新排列importrandomword=input("输入一个英文单词:")x=len(word)temp=""whilelen(temp)<x:letter=word[random.randrange(0,x)]ifletternotintemp:temp=temp+letterprint(temp)input("\t按回车键结束。。。")基本思路是将输入的单词(字符串)先转换为一个列表,然后使用random方法将列表中的元素顺序打乱,最后再把乱序的元素重新组合成一个新的字符串。
#random.sample不会改变原始字符串importrandomword=list(input('Enteraword:'))tmp=random.sample(word,len(word))result=''foriintmp:result+=iprint(result)版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。