AIHackers / OMOOC2py

开智学堂.Python入门班 第二期

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

代码bug问题

leonpak opened this issue · comments

系统

Mac osx 10.11 ,python 2.7.10

思路

参考http://www.binarytides.com/python-socket-programming-tutorial/ 最后例子
使用if else语句,如果输入r就查阅日志,w就写日志,q就退出
代码如下:

# -*- coding: UTF-8 -*-
import socket
import sys


HOST = ''   # ip地址,此处为空
PORT = 5000 # 定义端口

s = socket.socket(socket.AF_INET, socket.socket.SOCK_DGRAM) #创建端口,和udp协议
print '连接中'

try:
    s.bind((HOST, PORT)) #绑定ip地址和端口
except socket.error , msg: #出错信息
    print 'Bind failed. Error Code : ' + str(msg[0]) + ' Message ' + msg[1]
    sys.exit()

print '连接5000端口'

s.listen(10)
#print '端口接听信息中'

#与客户端的交互
while True:
    #接受数据
    data, addr = s.recvfrom(6666)

    print 'Connected with ' + addr[0] + ':' + str(addr[1])


    if data.lower() == 'r':
        f = open('diary.txt', 'r')
        txt = f.read()
        print '---查阅日记---'
        s.sendto(txt, addr)

    elif data.lower() == 'w':
        f = open('diary.txt','a')
        f.write("\n" + data)
        f.close()
        print "WellDone!保存."


    elif data.lower() == 'q':
        print "再见!"

    elif not data:
        break


s.close()

运行后遇到错误提示

 File "server.py", line 39
    f.write("\n" + data)
    ^
IndentationError: unexpected indent

空格和 tag 没有配置好?!
一般这种情况,配置好 editor
将问题 block 整个儿删除
再逐一手写回就好了

终于发现问题的根源在于是tab和空格混合使用了:一开始代码简单不见得是问题,当代码越来越长,某处用了tab,混着空格没有对齐就编译错误了,因为有时为了方便对比,开着两个不同的编译器,而不同编译器对tab解释是不同的,以后要注意这个问题。

嗯哼, 如何注意,又如何解决?!

  • 对比代码是否只能两种编辑器并列?
  • 单一编辑器是否能分拼同时看?甚至于同步滚动?
  • 又或有其它工具/方法来看?!
  • 总之不能总是依赖人的精力来注意,要有靠谱的工具来专业化解决的,,,

Sublime
sublime装了几个插件后,所有的tab都会自动提示。

主题问题已经解决,关闭.