Crossin的编程教室

标题: 萌新编那个问数字的小程序有问题,求救 [打印本页]

作者: 08ms_xxy    时间: 2018-1-4 15:35
标题: 萌新编那个问数字的小程序有问题,求救
本帖最后由 08ms_xxy 于 2018-1-5 09:21 编辑

本人萌新,照着教程做下来,结果,print打印文字的结果这里出了点问题,查了半天觉得改无可改了。。。百度也找了找,还是无果,只好求助前辈们。。

1A36E}GKCR14P)~$LQR205Q.png (17.37 KB, 下载次数: 465)

这是我做完print无效的图

这是我做完print无效的图

ZW8~4VLNQ50774L_INY(MA4.png (35.34 KB, 下载次数: 455)

这是教程的图,哪来对比一下

这是教程的图,哪来对比一下

1515115603.jpg (84.28 KB, 下载次数: 458)

2次

2次


作者: 花泽类    时间: 2018-1-4 16:19
if内容不在while循环体里,所以让你一直输入
作者: 08ms_xxy    时间: 2018-1-4 16:24
花泽类 发表于 2018-1-4 16:19
if内容不在while循环体里,所以让你一直输入

求代码,感谢,萌新对逻辑这块确实懵懵哒。。
作者: 08ms_xxy    时间: 2018-1-4 16:24
花泽类 发表于 2018-1-4 16:19
if内容不在while循环体里,所以让你一直输入

求代码,感谢,萌新对逻辑这块确实懵懵哒。。
作者: 08ms_xxy    时间: 2018-1-4 16:24
花泽类 发表于 2018-1-4 16:19
if内容不在while循环体里,所以让你一直输入

求代码,感谢,萌新对逻辑这块确实懵懵哒。。
作者: 天凉好个秋    时间: 2018-1-4 16:49
需要修改两个地方:
1、输入input(),输入的东西是字符串,没办法做比较判断。解决办法:int(input())
2、将最后一行代码a=True放在最后一个if语句之中。
QQ图片20180104164605.png

建议:这里可以使用if-elif-else来判断。
作者: 456    时间: 2018-1-4 18:11
本帖最后由 456 于 2018-1-4 18:12 编辑

支持楼上!
作者: 08ms_xxy    时间: 2018-1-5 08:53
天凉好个秋 发表于 2018-1-4 16:49
需要修改两个地方:
1、输入input(),输入的东西是字符串,没办法做比较判断。解决办法:int(input() ...

感谢感谢~
作者: 08ms_xxy    时间: 2018-1-5 09:20
本帖最后由 08ms_xxy 于 2018-1-5 09:23 编辑
天凉好个秋 发表于 2018-1-4 16:49
需要修改两个地方:
1、输入input(),输入的东西是字符串,没办法做比较判断。解决办法:int(input() ...

。。。我调试了一下,弄好了,原因是因为我前面from和print语句之间没有空行,但是为什么我还是不懂,我先把图搞上来(图在1楼,叫2次那个,你们看下输出的区别,捂脸),以后有新手玩pythom代码正确实现不了功能可以看看命令之间的空行。。希望对别人有帮助吧我搞个我调完的图,你们可看到我的a=True还是在if语句之外,只是前面语句空行了,捂脸,PS:我的python是3.4版本C:\Users\Administrator.6IJJAVXCYV14OLY\Desktop
作者: TED    时间: 2018-1-5 13:52
08ms_xxy 发表于 2018-1-5 09:20
。。。我调试了一下,弄好了,原因是因为我前面from和print语句之间没有空行,但是为什么我还是不懂,我先 ...

这个和你from和print之间空行没有关系,你的第一个截图里面 while之后的内容格式都是错的,answer=input()要新开一行,while里的所有语句都要缩进(也就是说if语句,a=True这些开头要有四个空格的缩进),你的'2次'截图里这些格式是正确的 所以能运行了 你可以试下把空行删了 仍然可以运行的。

注意,python里面是靠命令语句的缩进来分隔代码的。
作者: 天凉好个秋    时间: 2018-1-5 13:52
08ms_xxy 发表于 2018-1-5 09:20
。。。我调试了一下,弄好了,原因是因为我前面from和print语句之间没有空行,但是为什么我还是不懂,我先 ...

while True:
(这意味着下面的代码将无限循环,一直运行下去,如果没有break操作,是跳不出循环的。)
换而言之,你代码中在if语句之外的“a=Ture”是从未运行的,这会导致你的程序没法停止下来。(除非报错或者是关闭窗口)
关闭窗口就不说了。报错的话,你输入一个字符就行了(只要不是数字)。
无限循环 第一张图片,哪怕出现了Bingo,还是可以继续进行下去。(正常程序弹出Bingo,这个游戏就结束了)
输入字符,报错停止 第二张图片,输入字符报错停止。(虽然正常程序也可以这样停止,不是大家本意,是因为这个代码不健壮,可以完善的)
作者: 08ms_xxy    时间: 2018-1-5 15:45
TED 发表于 2018-1-5 13:52
这个和你from和print之间空行没有关系,你的第一个截图里面 while之后的内容格式都是错的,answer=input( ...

还真的。。和空行也没关系,多谢指教,以后if我就缩进,,
作者: TED    时间: 2018-1-5 16:59
08ms_xxy 发表于 2018-1-5 15:45
还真的。。和空行也没关系,多谢指教,以后if我就缩进,,

不是if就缩进,要看你代码内容的  缩进的代码是包含在上一句之中的。。  这个你得多看看
作者: alucard800    时间: 2018-1-12 20:00
# -*- coding:UTF-8 -*-
from random import randint
a = randint(1,100)
# print (a)
print("CAI YI XIA")
duile = False
while duile == False:
        b = int(input())

        if b < a:
                print("smaill")
        elif b > a:
                print("big")
        elif b == a:
                print("duile")
                duile = True






欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5