tanghaihong 发表于 2022-8-22 10:47:32

缩进怎么用啊?

day = 1
while day<=7:
anwer == ("今天有好好学习吗?")
if anwer == 有:
print("你真棒")
   break
day = day+1
else:
print("恭喜你完成七天打卡")

老是显示缩进错误,有人可以教我缩进吗?

wp231957 发表于 2022-8-22 10:57:27

归谁管辖的区块代码都要有统一的缩进
你这缩进太乱了,能不报错吗

柿子饼同学 发表于 2022-8-22 10:59:10

day = 1
while day <= 7: # 下面的都在循环体内, 所以都缩进到 while 里
    answer = input("今天有好好学习吗? ") # 这里接收输入, 用 input , 赋值用 一个等号就行
    # answer 不是 anwer
    if answer == '有': # ans 是 str 类型, 比较时加 '' 或 ""
      print("你真棒") # 如果有就打印这句话, 所以这一行属于第 4 行的 if , 所以缩进到 if 里面
      #break 这里用 break 干什么 , 不用跳出循环
      day += 1

print("恭喜你完成七天打卡") # 这个放在最后

临时号 发表于 2022-8-22 10:59:27

你这代码我看着除了缩进还有错误
day = 1
while day<=7:
    answer = input("今天有好好学习吗?")
    if answer == "有":
      print("你真棒")
      day = day+1
print("恭喜你完成七天打卡")

jackz007 发表于 2022-8-22 11:38:46

本帖最后由 jackz007 于 2022-8-22 15:44 编辑

       Python 用缩进来表达语句归属,相当于其它语言的语句括号,一般属于 if、while、for、try、with、类定义、函数定义等的语句需要缩进,每级缩进一般占用 4 个空格,必须严格遵守、严格对齐,也可以用 TAB 键缩进,但是,同一个代码文件必须一以贯之,不可以 TAB 键与空格键混用。

云龙烛火 发表于 2022-8-22 15:41:36

缩进还是比较简单的,只要你明白代码逻辑,缩进一般不会出错

wyh551202 发表于 2022-8-22 16:35:06

根据逻辑使用缩进,我看你的代码像是用空格缩进的,建议使用Tab键,返回缩进是shift+tab。另代码逻辑有误。input和if 使用错误
day = 1
while day<=7:
   
    anwer = input("今天有好好学习吗?")
    if anwer == '有':
      print("你真棒")      
      day = day+1
   
print("恭喜你完成七天打卡")

kongminghui 发表于 2022-8-22 17:44:05

1

zhangjinxuan 发表于 2022-8-23 14:47:55

缩进在python很重要。对于代码缩进,必须注意以下几点:
1.该缩进的必须缩进,不该缩进的不能缩进(比如while True:后面必须缩进)
2.每个制表符(缩进)的宽必须相同,你的代码break那点缩进宽一会2格,一会3格,4行也是的缩进应和3行的缩进相同,这个就是报错的原因
3.缩进长度建议为4格或8格
代码还有几个问题:
1.3行应该为 anwer = input("今天有好好学习吗?“)
2.逻辑问题:如果输入有,那么直接break了,但如果输入没有或别的,就打印”恭喜你……“
代码应这么改:

day = 1
while day<=7:
    anwer = input("今天有好好学习吗?")
    if anwer == 有:
      print("你真棒")
      day = day+1
      continue
    if day == 7:
      print("恭喜你完成七天打卡")
      break

kaobiel 发表于 2022-8-23 22:32:07

太乱了
{:10_266:}

hveagle 发表于 2022-8-24 10:09:01

1个缩进4个空格

hveagle 发表于 2022-8-24 10:12:25

当出现末尾为
:
的时候
例如:
for i in range(10):|
Python会自动给你缩进
for i in range(10):
    |
注:| 代表鼠标的位置

ll.pc 发表于 2022-8-25 11:47:41

可以使用快捷键方式,ctrlt+alt+L大小写都可以

Jason茗 发表于 2022-8-25 14:55:38

本帖最后由 Jason茗 于 2022-8-25 15:01 编辑

是这样的,只有一段代码是另一段代码的子代码时才需要用缩进,缩进可以代表附属关系,比如if下的print和break就没有附属关系,所以它们应该是并列的,而不是break比print多一个缩进。同理,if和else是需要用while重复循环的,所以它们应该比while多一个缩进,同时,if和else的子代码也要跟着全都多一个缩进。恕我多嘴,除了缩进,你这个代码是有问题的:
anwer == ("今天有好好学习吗?")
if anwer == 有:

首先,==代表判断是否等于,相当于我们平时用的=,看你这里是想把"今天有好好学习吗?"赋值给anwer,所以==要换成=,在python中,==是等于,=是赋值。
其次,这个if条件永远不可能达成,因为anwer是等于"今天有好好学习吗?"的,你又让它判断是不是等于"有",很明显"今天有好好学习吗?"是不可能等于"有"的。根据我的判断,你是想问用户这个问题,然后得到回答,所以应该把anwer == ("今天有好好学习吗?")改成:
anwer = input("今天有好好学习吗?")
input是用于获取输入的,括号里的参数是用于提醒输入的。
还有,按照你这个程序的逻辑,只要没回答“有”就完成打卡了,那我要是天天回答"没有",那岂不是陷入死循环了,而且每次都回答完成打卡了,所以,应该把else下的提示语改为"继续努力吧!"之类的提示语,然后在和while并列的下方放一个输出完成打卡的,我给你看看我改的代码,你试一试:
day = 1
while day<=7:
anwer == ("今天有好好学习吗?")
if anwer == 有:
    print("你真棒")
    break
    day = day+1
else:
    print("继续努力吧!")
print("恭喜你完成七天打卡")

看看这回行不行,如果还不行,那就把一个缩进改为四格。
看在我这么努力的份上,可不可以把我的回复作为你这个贴子的最佳回复呢?{:5_92:}

Jason茗 发表于 2022-8-25 14:56:30

hveagle 发表于 2022-8-24 10:09
1个缩进4个空格

在有些运行环境下,一个缩进两个空格

hveagle 发表于 2022-8-25 14:57:15

Jason茗 发表于 2022-8-25 14:56
在有些运行环境下,一个缩进两个空格

错的!

Jason茗 发表于 2022-8-25 15:05:37

hveagle 发表于 2022-8-25 14:57
错的!

我好像在哪里看见过,但是忘了在哪看见的,不过4个空格的缩进的确是最常见的,这点我不反对

hveagle 发表于 2022-8-25 17:56:01

Jason茗 发表于 2022-8-25 15:05
我好像在哪里看见过,但是忘了在哪看见的,不过4个空格的缩进的确是最常见的,这点我不反对

因该是其他语言的(我只学过Python)

Jason茗 发表于 2022-8-25 18:45:07

hveagle 发表于 2022-8-25 17:56
因该是其他语言的(我只学过Python)

我也只学过python,我只是记得好像看见过

edward1102 发表于 2022-8-25 20:40:32

都是大佬
页: [1]
查看完整版本: 缩进怎么用啊?