Python基础-函数-functions1.py

Python基础-函数-functions1.py

# ~ coding=UTF-8

# ~ 最简单的函数结构
def greet_user():
	print("Hello!")
greet_user()

# ~ 带传递参数的函数
def greet_user2(username):
	print("Hello, " + username.title() + "!")
greet_user2('jesse')

# ~ 传递列表,传递参数为列表
def greet_users(names):
	for name in names:
		print("Hello, " + name.title() + "!")
usernames = ['hannah','ty','margot']
greet_users(usernames)

# ~ 位置实参
def describe_pet(animal_type, pet_name):
	print("\nI have a " + animal_type + ".")
	print("My " + animal_type + "'s name is " + pet_name.title() + ".")
describe_pet('hamster','harry')
describe_pet('dog','willie')

# ~ 关键字实参
describe_pet(pet_name='harry',animal_type='hamster')

# ~ 给形参指定默认值
# ~ 可以简化函数调用,并清楚地指出函数的典型用法
def describe_pet2(pet_name, animal_type='dog'):#默认值必须放在后面
	print("\nI have a " + animal_type + ".")
	print("My " + animal_type + "'s name is " + pet_name.title() + ".")
describe_pet2(pet_name='willie')
describe_pet2('willie')
describe_pet2(pet_name='harry',animal_type='hamster')

# ~ 函数返回值
def get_formatted_name(first_name,last_name,middle_name=''):#默认中间名为空
	if middle_name:
		full_name = first_name + ' ' + middle_name + ' ' + last_name
	else:
		full_name = first_name + ' ' + last_name
	return full_name.title()
musician = get_formatted_name('jimi','hendrix')
print(musician)
musician = get_formatted_name('john','hooker','lee')
print(musician)

# ~ 函数返回值为字典
def build_person(first_name,last_name,age=''):#返回一个字典,该字典存储一个人的信息
	person = {'first':first_name,'last':last_name}
	if age:
		person['age'] = age
	return person
musician = build_person('jimi','hendrix',31)
print(musician)
	
# ~ 结合使用函数和while循环
while True:
	print("\nPlease tell me your name:")
	print("(Enter 'q' at any time to quit)")
	f_name = input("First name: ")
	if f_name == 'q':
		break
	l_name = input("Last name: ")
	if l_name == 'q':
		break
	formatted_name = get_formatted_name(f_name,l_name)
	print("\nHello, " + formatted_name + "!")


# ~ 对input&while.py中将unconfirmed_users中元素转换到confirmed_users进行函数化处理
def confirm_users(unconfirmed_users,confirmed_users):
	while unconfirmed_users:
		current_user = unconfirmed_users.pop()
		print("Verifying user: " + current_user.title())
		confirmed_users.append(current_user)
	
def show_confirmed_users(confirmed_users):
	print("\nThe following users have been confirmed:")
	for confirmed_user in confirmed_users:
		print(confirmed_user.title())

def show_unconfirmed_users(unconfirmed_users):
	print("\nThe following users are not confirmed:")
	for unconfirmed_user in unconfirmed_users:
		print(unconfirmed_user.title())

unconfirmed_users = ['alice','brian','candace']
confirmed_users = []

# ~ 禁止函数修改列表,调用函数时创建实参列表的副本,采用list[:]
confirm_users(unconfirmed_users[:],confirmed_users)#禁止修改unconfirmed_users列表
# ~ confirm_users(unconfirmed_users,confirmed_users)#未禁止修改列表
show_confirmed_users(confirmed_users)
show_unconfirmed_users(unconfirmed_users)

# ~ 传递任意数量的实参
def make_pizza(*toppings):# * 星号表示创建了一个名为toppings的空元祖
	# ~ print(toppings)
	print("\nMaking a pizza with the following toppings:")
	for topping in toppings:
		print("-  " + topping)
make_pizza('pepperoni')
make_pizza('mushrooms','green peppers','extra cheese')

# ~ 结合使用位置实参和任意数量实参
def make_pizza(size,*toppings):
	print("\nMaking a " + str(size) 
		+ "-inch pizza with the following toppings:")
	for topping in toppings:
		print("-  " + topping)
make_pizza(16,'pepperoni')
make_pizza(12,'mushrooms','green peppers','extra cheese')

# ~ 使用任意数量的关键字实参,创建一个字典返回值
def build_profile(first,last,**user_info):
	profile = {}
	profile['first_name'] = first
	profile['last_name'] = last
	for key,value in user_info.items():
		profile[key] = value
	return profile

user_profile = build_profile('albert','einstein',
							location='princeton',
							field = 'physics')
print(user_profile)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
报错如下: Traceback (most recent call last): File "/usr/local/lib64/python3.6/site-packages/flask/app.py", line 2091, in __call__ return self.wsgi_app(environ, start_response) File "/usr/local/lib64/python3.6/site-packages/flask/app.py", line 2076, in wsgi_app response = self.handle_exception(e) File "/usr/local/lib64/python3.6/site-packages/flask/app.py", line 2073, in wsgi_app response = self.full_dispatch_request() File "/usr/local/lib64/python3.6/site-packages/flask/app.py", line 1518, in full_dispatch_request rv = self.handle_user_exception(e) File "/usr/local/lib64/python3.6/site-packages/flask/app.py", line 1516, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/lib64/python3.6/site-packages/flask/app.py", line 1502, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args) File "/temp/py/app-07240001.py", line 16, in display_yaml return render_template('index.html', highlighted_data=highlighted_data, css=css) File "/usr/local/lib64/python3.6/site-packages/flask/templating.py", line 150, in render_template ctx.app, File "/usr/local/lib64/python3.6/site-packages/flask/templating.py", line 128, in _render rv = template.render(context) File "/usr/local/lib/python3.6/site-packages/jinja2/environment.py", line 1291, in render self.environment.handle_exception() File "/usr/local/lib/python3.6/site-packages/jinja2/environment.py", line 925, in handle_exception raise rewrite_traceback_stack(source=source) File "/temp/py/templates/index.html", line 16, in top-level template code var originalData = {{ data|tojson|safe }}; File "/usr/local/lib/python3.6/site-packages/jinja2/filters.py", line 1673, in do_tojson return htmlsafe_json_dumps(value, dumps=dumps, **kwargs) File "/usr/local/lib/python3.6/site-packages/jinja2/utils.py", line 736, in htmlsafe_json_dumps dumps(obj, **kwargs) File "/usr/local/lib64/python3.6/site-packages/flask/json/__init__.py", line 139, in dumps rv = _json.dumps(obj, **kwargs) File "/usr/lib64/python3.6/json/__init__.py", line 238, in dumps **kw).encode(obj) File "/usr/lib64/python3.6/json/encoder.py", line 199, in encode chunks = self.iterencode(o, _one_shot=True) File "/usr/lib64/python3.6/json/encoder.py", line 257, in iterencode return _iterencode(o, 0) File "/usr/local/lib64/python3.6/site-packages/flask/json/__init__.py", line 57, in default return super().default(o) File "/usr/lib64/python3.6/json/encoder.py", line 180, in default o.__class__.__name__) TypeError: Object of type 'Undefined' is not JSON serializable
最新发布
07-25

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值