今天在学习Python函数的默认参数的时候遇到一段代码,本想研究函数实参对函数形参中的默认参数的影响,结果遇到了print中文出现错误的问题,具体情况如下:

#!/usr/bin/env python
#coding=utf-8
def print_info(name,age,city='TianJin'):
    print('--------个人信息-------')
    print ('姓名:',name)
    print ('年龄:',age)
    print ('城市:',city)
print_info('Lily',22,city='BeiJing')

输出结果如下:
- - - - - - - -个人信息- - - - - - -
(‘\xe5\xa7\x93\xe5\x90\x8d\xef\xbc\x9a’, ‘Lily’)
(‘\xe5\xb9\xb4\xe9\xbe\x84\xef\xbc\x9a’, 22)
(‘\xe5\x9f\x8e\xe5\xb8\x82\xef\xbc\x9a’, ‘BeiJing’)

  从输出结果可以看出,直接print(‘- - - - - - - -个人信息- - - - - - -’)是没有问题的,而当中文字符串与变量结合被print的时候出现错误,如(‘\xe5\xa7\x93\xe5\x90\x8d\xef\xbc\x9a’, ‘Lily’)。
  一开始以为是中文编码问题,从网上搜索中文编码相关的问题,但是没有解决,后发现原来是print (‘姓名:’,name)其中的括号问题,因为Python3.X中print为函数,需要加括号,所以上述代码为Python3.x的代码,而我的Python为Python2.x,所以print加括号存在问题,去掉括号后即可正确显示,如下:

#!/usr/bin/env python
#coding=utf-8
def print_info(name,age,city='TianJin'):
    print '--------个人信息-------'
    print '姓名:',name
    print '年龄:',age
    print '城市:',city
print_info('Lily',22,city='BeiJing')

此时的输出结果为:
- - - - - - - -个人信息- - - - - - -
姓名: Lily
年龄: 22
城市: BeiJing

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐