Discuss / Python / 再简单的代码也要亲手打一遍

再简单的代码也要亲手打一遍

Topic source

翁岚敏

#1 Created at ... [Delete] [Delete and Lock User]

可变参数可以理解成一级指针的概念 关键字参数可以理解成二级指针的概念

var_args.py

!/usr/bin/env python3

-- coding:utf-8 --

def hello(greeting,*args): if(len(args)==0): print('%s!'%greeting) else: print('%s,%s!'%(greeting,','.join(args)))

hello('Hi') hello('Hi','Sarah') hello('Hello','Michael','Bob','Adam')

names= ('Bart','Lisa') hello('hello',*names)

kw_args.py

!/usr/bin/env python3

-- coding:utf-8 --

def printscores(**kw): print(' Name Score') print('__') for name,score in kw.items(): print('%10s %d'%(name,score)) print()

print_scores(Adam=99,Lisa=88,Bart=77)

data = { 'Adam Lee':99, 'Lisa S':88, 'F.Bart':77 }

print_scores(**data)

def printinfo(name,*,gender,city='Beijing',age): print('Personal Info') print('__') print(' Name:%s'% name) print('Gender:%s'%gender) print(' city:%s'%city) print(' Age:%s'%age) print()

print_info('Bob',gender='male',age=20) print_info('Lisa',gender='female',city='Shanghai',age=18)

提不出问题来 怎么办 没有问题的话感觉敲代码就没意义了

Henry_Smith

#2 Created at ... [Delete] [Delete and Lock User]

你定义的时候用的printscores,后面输出的时候用的print_scores,很明显执行的时候会报错NameError: name 'print_scores' is not defined

如果是执行的代码的,这个问题肯定看的出来。但是结合最后的一句话,又好像是故意在这里弄的这个。

不过你最后这句话说的还是认同的。


  • 1

Reply