def get_formatted_name(first_name,last_name,middle_name=''):
full_name = first_name + ' ' + middle_name + ' ' + last_name
return full_name.title()
while True:
print("\nPlease tell me your name:")
print("(enter 'q' at any time to quit)")
print("(enter 'p' at ant time to skip)")
f_name = input("First_name :")
if f_name == 'q':
break
m_name = input("Middle_name :")
if m_name == 'p':
m_name = ' '
if m_name == 'q':
break
l_name = input("Last_name :")
if l_name == 'q':
break
if m_name == ' ':
formatted_name = get_formatted_name(first_name=f_name,last_name=l_name)
else:
formatted_name = get_formatted_name(first_name=f_name,last_name=l_name,middle_name=m_name)
print("\nHello," + formatted_name + "!")
上面脚本中用到了函数、while、if语句综合
①函数:
定义def + 函数名 :
def函数必须在引用函数之前!
python中,吃缩进,缩进的语句就是这个函数或者循环的内容,所以上述中def函数中的意思是把首名字、中间的名字、尾名字给连起来,最后返回这个总的名字输出。
函数中也有实参、形参。形参在调用函数的时候给出,如:
formatted_name = get_formatted_name(first_name=f_name,last_name=l_name)
formatted_name = get_formatted_name(first_name=f_name,last_name=l_name,middle_name=m_name)
形参与实参是一一对应的,但是在形参的时候给出了,实参与形参的对应关系就可以不用一一对应,也就是可以不按形参的顺序来放置实参的位置,如上,这里就是给出了他们之间的对应关系,但是如果有空白的字符串,这个只能放在最后面,不然它会被其他的实参给覆盖掉,空白字符串的讲解在下面。
在实参中有时不会有那么多,但是却是一定会有那么几次是全部都有的,那要是定义多个函数则麻烦了,那么这里可以来让实参变成可选的:
def get_formatted_name(first_name,last_name,middle_name=’’):
formatted_name = get_formatted_name(first_name=f_name,last_name=l_name)
formatted_name = get_formatted_name(first_name=f_name,last_name=l_name,middle_name=m_name)
上面的为函数,下面则是调用函数,如第一个调用函数,它只有两个实参,但是函数里面却有三个形参,这不是错误的,反而这是对的,它给出了middle_name=’‘这个空白字符串,这是让middle_name变成可选,要是没有实参来对应middle_name,则不输出middle_name,就此忽略,但要是有一个实参与它对应,传递给了他值,那么middle_name=’'这个空白字符串就被覆盖掉了,变成了实参传递过来的值。
要是在形参中间给出 (*元组名) ,则表示这个形参可以接受任意多个实参,可以直接是字符串,也可以是变量。当然在形参中不止有(**元组名),亦可在之前面有一些能与实参对应的形参,再是(**元组名)
要是在形参中间给出 (**字典名),在实参中给出多个值—对,而形参中只给出一个 (**字典名)就能接受所有给出的值—对。当然在形参中不止有(**字典名),亦可在之前面有一些能与实参对应的形参,再是(**字典名)
像实参形参这样,也可以另创一个文件a,在文件a中引用本文件,要运行则要加 import A(本文件的文件名),亦可直接指定导入模块的名称a和该模块中函数名b,用句号分割开:
文件名.函数名(实参,实参)
还有其他方法来调用模块中的特定函数:
from 文件名 import 函数名1,函数名2
则代码中表现就为:
函数名(实参,实参)
这里就不需要像上面一样要加文件名了
若在该文件中要引用所有可另一个文件中的函数,但文件中函数较多,一个一个写太麻烦,则可以类似于上述( * )来引用所有的函数
如果函数名较长,在调用函数是可以把函数名重新指定别名,利用as来实现:
from 文件名 import 函数名 as 别名
as不仅可以给函数名别名,亦可给文件别名
##注意在给函数实参,形参的过程中,要想用 “ = ” ,在此前面不要加空格键。
②while:
while的循环是看while后面的是true还是false,若是true则进行循环,若不是就退出循环,如上述所说的那样,while True:
这里直接给给出了true,while后面也可以加判断语句,给出一个语句,判断出它为真为假,为真是true,为假是false。
要想退出循环亦可用break语句,用if判断来配合break语句,在想退出的时候满足if判断,来进入if循环中的break跳出循环(此循环是大循环,最外面那层都直接跳出)
在while循环中,最好有一个if语句来判断出然后来跳出循环,不然就是死循环。、
③if:
if语句是来判断的,满足if给出的条件,则进入if循环,不满足就则不进入if循环。
python中,循环、函数、判断…这些比较特别的语句后面都要加 “ : ” ,这个不能遗忘,冒号代表着进入了这些特殊的语句中,开始进行循环、函数、判断之后才能执行的语句。