首页 > 代码库 > 记录day2

记录day2

 

房间里的空调吵的不行...不知是干什么了,但是现在在重新签房租的敏感时期,我也不太敢和房东说,唉。

先记录今天遇到的一个的问题:

def print70(s):
    len = len(s)
    spaces = 70 - len
    print(spaces+s)    
print70(xuetao)

代码运行结果:

技术分享

这个报错我其实有些不太理解,我用len做变量名,难道是覆盖了函数名?

假设是这样的,我来做个测试:

技术分享

在main函数的环境下,其实这个赋值语句是能正常运行的,而且是正常的结果。

但是仔细想想啊,python会把函数定义这部分代码先运行,运行完这部分代码时,其实len这个变量已经不是一个函数了。

修改一下原先的代码,测试一下

 

def print70(s):
    len = len(s)
    spaces = 70 - len
    print(spaces+s)    
# print70(‘xuetao‘)
print(type(len))

技术分享

结果还是不算特别清晰,这时候len是一个函数或方法,但是和在之前在main环境下直接看len已经不一样了?

继续修改代码,直接来个狠的。

print(type(len))
def print70(s):
    len = len(s)
    spaces = 70 - len
    print(spaces+s)    
# print70(‘xuetao‘)
print(type(len))
print(len)

技术分享

我有些凌乱了...

如果把注释去掉,调用print70函数,又是那个报错

技术分享

无法理解,暂且记着吧。

--------------

更新

联系3.3不知道大家有没有好办法,我的代码写的好蠢,求优化

def drawSonLine1():
    print(- - - - +, end= )
    
def drawSonLine2():
    print( *8 + |, end= )


def drawLine1():
    print(+, end= )
    drawSonLine1()
    drawSonLine1()
    drawSonLine1()
    drawSonLine1()
    print() # 换行
    print() # 空出一行
    

    
def drawLine2():
    print(|, end= )
    drawSonLine2()
    drawSonLine2()
    drawSonLine2()
    drawSonLine2()
    print() #换行
    print() #空出一行
    
    

def draw():
    drawLine1()
    drawLine2()
    drawLine2()
    drawLine2()
    drawLine2()
    
    drawLine1()
    drawLine2()
    drawLine2()
    drawLine2()
    drawLine2()
    
    drawLine1()
    drawLine2()
    drawLine2()
    drawLine2()
    drawLine2()
    
    drawLine1()
    drawLine2()
    drawLine2()
    drawLine2()
    drawLine2()
    
    drawLine1()
    
draw()

 

记录day2