开发者社区> 问答> 正文

想不明白,这段python小代码有什么问题吗??报错

这段小代码执行后(在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按回车键结束。。。")



展开
收起
爱吃鱼的程序员 2020-06-10 14:07:09 560 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    下面的是前几天练习的代码。


    """如何将一组字符串打乱原有顺序.pyhttp://bbs.bathome.net/thread-39382-1-1.html2016年2月16日11:25:56依山居"""#方法1利用集合无序的特性乱序,每次程序重新运行输出的序是不一样的。#同理可以字典键唯一且无序的也是可以的。s="爱民玉伟伟博如祥良智富强光耀智博来德金吉李松海"print(set(s.split()))#方法2优先推荐python内置random.sample()importrandomss="爱民玉伟伟博如祥良智富强光耀智博来德金吉李松海"ns=ss.split()#运行可见下面相同的代码输出内容的顺序不一样。rs=random.sample(ns,len(ns))print(rs)rs=random.sample(ns,len(ns))print(rs)#方法3论坛里的ivor发现了更好的方法random.shuffle(items)random.shuffle(ns)print(ns)#不是返回新的列表而是直接修改ns的顺序try:input("回车退出")exceptSyntaxError:pass


    简化你的代码可以这样:


    """打乱一个单词的字母顺序.py2016年2月23日22:12:51codegayhttp://www.oschina.net/question/2649160_2152188"""importrandomword=list(input(""))print(word)random.shuffle(word)print(word)




    感谢你的回答。

    我知道错在哪里了。random.randrange()的上下取值理解不对。

    正确的是这样(而且这段程序写得还有个问题:这个单词不能有重复的字母):

    #随机读取单词中的字母,重新排列importrandomword=input("输入一个英文单词:")x=len(word)temp=""whilelen(temp)<x:letter=word[random.randrange(0,x)]ifletternotintemp:temp=temp+letterprint(temp)input("\t按回车键结束。。。")



    空字符串是False,含有一个空格的就是True

    基本思路是将输入的单词(字符串)先转换为一个列表,然后使用random方法将列表中的元素顺序打乱,最后再把乱序的元素重新组合成一个新的字符串。

    #random.sample不会改变原始字符串importrandomword=list(input('Enteraword:'))tmp=random.sample(word,len(word))result=''foriintmp:result+=iprint(result)




    #random.shuffle做原地修改importrandomword=list(input('Enteraword:'))random.shuffle(word)result=''foriinword:result+=iprint(result)




    回复 @幻视Vision:确实方便,一行代码代替for循环直接输出:print(''.join(list))用''.join(list)连接list转成字符串。少代码。谢谢。
    2020-06-10 14:07:27
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载