gaoguanyi1999 发表于 2020-4-17 17:43:36

有没有什么办法能不让第二段的前三行出现啊。。谢谢大神

第一段(python文件里的)
import random
str="0123456789abcdefghijklmnopqrstuvwxyz"
len=str.__len__()
yzm=""
for i in range(4,8):
    yzm=yzm+str
    print(yzm)
YZMINPUT= input("pls key in the code")
if yzm==YZMINPUT:
    print("you passed")
else:
    print("failed")


IDLE打开之后执行就变成了(以下是IDLE界面显示内容)
u            (就是这三行,这是第一行)
uj         (这是第二行)
ujc          (这是第三行)
ujc0
pls key in the code

有没有办法让这一段的前三行不出现啊。。。

sunrise085 发表于 2020-4-17 17:47:29

本帖最后由 sunrise085 于 2020-4-17 17:49 编辑

把print向前提一下,减少缩进,放到循环外,就可以了。

写代码请不要拿着BIF作为变量名,这么写的话,到用BIF的时候就出错了
你的这个程序中用了len和str,这俩都是内置函数

import random
str="0123456789abcdefghijklmnopqrstuvwxyz"
len=str.__len__()
yzm=""
for i in range(4,8):
    yzm=yzm+str
print(yzm)
YZMINPUT= input("pls key in the code")
if yzm==YZMINPUT:
    print("you passed")
else:
    print("failed")

txxcat 发表于 2020-4-17 18:01:11

for i in range(4,8):   #4次循环
    yzm=yzm+str
    print(yzm)                      #每次循环打印一次

改成:
for i in range(4,8):   #4次循环
    yzm=yzm+str
print(yzm)                      #循环完打印就没问题了

txxcat 发表于 2020-4-17 18:07:43

为什么你老喜欢用内置函数做变量名,你的上一段代码就因为后面用了函数len导致报错,让你改变量名为lenth,你却在这里把用函数len的地方改了,之前还没有注意到str也是这样,这真的是个非常非常非常坏的编程习惯。
页: [1]
查看完整版本: 有没有什么办法能不让第二段的前三行出现啊。。谢谢大神