鱼C论坛

 找回密码
 立即注册
查看: 1913|回复: 14

[已解决]else报错

[复制链接]
发表于 2019-3-19 08:25:50 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
整篇代码
else:
    break
都会报错,求大神解答
最佳答案
2019-3-19 09:24:35
夏a天 发表于 2019-3-19 09:16
ios手机端 pythonjam,还有个问题,你的代码复制过来,我这的确可以运行,但是你修改完的代码为什么从def ...

缩进控制是python的优势也是容易出bug的地方。
一段程序应该是统一缩进模式的,我只是修改了两段else,其他的还是你原来的缩进,猜想可能是混用了空格与tab。
95B85E32-00CE-4AF1-9FC0-1B6A0AA4FEDA.jpeg
EDB78F8C-C174-46BA-B2B3-9A3F1006165A.jpeg
22CAE5F8-D5E9-4A8F-8C8B-C76B9800540C.jpeg
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-3-19 08:31:37 | 显示全部楼层
贴代码  不要图片
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-19 08:32:44 From FishC Mobile | 显示全部楼层

def start():
        print('丨--- 新建用户:N/n ---丨')
        print('丨--- 登录账号:E/e ---丨')
        print('丨--- 退出程序:Q/q ---丨')

start()
namedict = {}
while True:
       
        word = input('丨--- 请输入指令代码:')

        if word == 'Q' or word == 'q':
                print('正在退出程序...')
                break
       
        elif word not in 'NEQneq':
            print('输入的指令有误。')
            continue

    #注册账号
        elif word == 'N' or word == 'n':
                name =input('请输入用户名:')
                while True:
                    if name in namedict:
                            name = input('此用户名已经被使用,请重新输入:')
                        else:
                            break
                password = input('请输入密码:')
                namedict.setdefault(name,password)
                print('注册成功,赶紧试试登录吧!')
                continue
               
    #登陆账号
        elif word ==  'E' or word == 'e':
                name = input('请输入用户名:')
                while True:
                    if name not in namedict:
                            name = input('用户不存在,请重新输入用户名:')
                        else:
                            break
                password = input('请输入密码:')
                while True:
                        if namedict[name] != password:
                            password = input('密码不正确,请输入密码:')
                        else:
                            break
                print('欢迎进入程序,请点击右上角的X结束程序!')
                               
               
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-19 08:33:24 From FishC Mobile | 显示全部楼层
wp231957 发表于 2019-3-19 08:31
贴代码  不要图片

贴了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-19 08:41:53 | 显示全部楼层
                    if name in namedict:
                            name = input('此用户名已经被使用,请重新输入:')
                        else:
                            break
  以上2行缩进不对
                password = input('请输入密码:')
                namedict.setdefault(name,password)
                print('注册成功,赶紧试试登录吧!')
                continue
               
    #登陆账号
        elif word ==  'E' or word == 'e':
                name = input('请输入用户名:')
                while True:
                    if name not in namedict:
                            name = input('用户不存在,请重新输入用户名:')
                        else:
                            break
  以上2行缩进不对
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2019-3-19 08:46:03 From FishC Mobile | 显示全部楼层
冬雪雪冬 发表于 2019-3-19 08:41
if name in namedict:
                            name = input('此用户名已经被使 ...

是标红的缩进不对吗,提示错误信息就是缩进不正确,关键不知道怎么改正确啊,求指教
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-19 08:46:45 | 显示全部楼层
夏a天 发表于 2019-3-19 08:46
是标红的缩进不对吗,提示错误信息就是缩进不正确,关键不知道怎么改正确啊,求指教

要与上面的if对齐
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-19 08:47:31 | 显示全部楼层
这是修改后的程序。


  1. def start():
  2.         print('丨--- 新建用户:N/n ---丨')
  3.         print('丨--- 登录账号:E/e ---丨')
  4.         print('丨--- 退出程序:Q/q ---丨')

  5. start()
  6. namedict = {}
  7. while True:
  8.         
  9.         word = input('丨--- 请输入指令代码:')

  10.         if word == 'Q' or word == 'q':
  11.                 print('正在退出程序...')
  12.                 break
  13.         
  14.         elif word not in 'NEQneq':
  15.             print('输入的指令有误。')
  16.             continue

  17.     #注册账号
  18.         elif word == 'N' or word == 'n':
  19.                 name =input('请输入用户名:')
  20.                 while True:
  21.                     if name in namedict:
  22.                             name = input('此用户名已经被使用,请重新输入:')
  23.                     else:
  24.                         break
  25.                 password = input('请输入密码:')
  26.                 namedict.setdefault(name,password)
  27.                 print('注册成功,赶紧试试登录吧!')
  28.                 continue
  29.                
  30.     #登陆账号
  31.         elif word ==  'E' or word == 'e':
  32.                 name = input('请输入用户名:')
  33.                 while True:
  34.                     if name not in namedict:
  35.                             name = input('用户不存在,请重新输入用户名:')
  36.                     else:
  37.                         break
  38.                 password = input('请输入密码:')
  39.                 while True:
  40.                         if namedict[name] != password:
  41.                             password = input('密码不正确,请输入密码:')
  42.                         else:
  43.                             break
  44.                 print('欢迎进入程序,请点击右上角的X结束程序!')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-19 09:00:50 From FishC Mobile | 显示全部楼层
冬雪雪冬 发表于 2019-3-19 08:47
这是修改后的程序。

谢谢版主  
你看一下我的截图,明明也对齐了啊 if 和 else,为什么还会报错,难道是我的编辑器的问题么
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-19 09:09:19 | 显示全部楼层
夏a天 发表于 2019-3-19 09:00
谢谢版主  
你看一下我的截图,明明也对齐了啊 if 和 else,为什么还会报错,难道是我的编辑器的问题么{ ...

你用的是什么编辑器?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-19 09:16:37 From FishC Mobile | 显示全部楼层
冬雪雪冬 发表于 2019-3-19 09:09
你用的是什么编辑器?

ios手机端 pythonjam,还有个问题,你的代码复制过来,我这的确可以运行,但是你修改完的代码为什么从def start ():这开始 后面就是缩进了两个Tab(或者8个空格)呢,从开始学习说不是缩一个Tab或者4个空格就行吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-19 09:24:35 | 显示全部楼层    本楼为最佳答案   
夏a天 发表于 2019-3-19 09:16
ios手机端 pythonjam,还有个问题,你的代码复制过来,我这的确可以运行,但是你修改完的代码为什么从def ...

缩进控制是python的优势也是容易出bug的地方。
一段程序应该是统一缩进模式的,我只是修改了两段else,其他的还是你原来的缩进,猜想可能是混用了空格与tab。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-19 09:25:04 | 显示全部楼层
夏a天 发表于 2019-3-19 08:46
是标红的缩进不对吗,提示错误信息就是缩进不正确,关键不知道怎么改正确啊,求指教

贴代码不是这么贴的兄弟 ....


要用[code]包起来,看看新手乐园的介绍吧。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-22 23:51:48 | 显示全部楼层
过来学习
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-23 10:46:38 | 显示全部楼层
我和你用的一样的软件,把电脑上可以运行的代码复制过来之后缩进全部得重新搞一遍,不知道是不是软件的问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-12 04:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表