再识Python笔记(四)

7.用户输入和while循环

7.1函数input()

函数input()让程序暂停运行,等待用户输入一些文本。获取用户输入后,Python将其存储在一个变量中,以方便你使用。

在使用函数input()时,都应指定清晰而易于明白的提示。

在提示可能超过一行后,可以将提示存储在一个变量中,再将该变量传递给函数input()。

其中,运算符+=表示在prompt中字符串末尾附加一个字符串。

7.1.1int()获取数值输入

函数int()将字符串转为数值,有利于比较。

7.1.3求模运算 

运算符: %

显示一个数除以另一个数的余数是多少。判断奇偶。

7.2while循环

1 prompt = 'Tell me something, and I will repeat it back to you: '
2 prompt += "\n Enter 'quit' to end the program"
3 message = ''
4 while message != 'quit':
5     message = input(prompt)
6     print(message)

其中:message = ' '  

将变量message的初始值设置为空字符串:‘ ’,让Python首次执行代码时可以有可供检查的东西。如果没有,那么该程序就无法执行下去。

使用标志来充当判断条件:

在要求很多条件都满足才能继续运行的程序中,可定义一个变量,用于判断整个程序是否处于活动状态。这个变量被称为:标志。

你可让标志为True时继续运行,并在任何事件导致标志为False时让程序停止运行。

 1 prompt = 'Tell me something, and I will repeat it back to you: '
 2 prompt += "\n Enter 'quit' to end the program "
 3 
 4 active = True
 5 while active:
 6     message = input(prompt)
 7     if message == 'quit':
 8         active = False
 9     else:
10         print(message)

7.2.4使用break退出循环

不在执行余下循环

 1 prompt = 'Tell me something, and I will repeat it back to you: '
 2 prompt += "\n(Enter 'quit' to end the program) "
 3 
 4 while True:
 5     city = input(prompt)
 6     
 7     if city == 'quit':
 8         break
 9     else:
10         print("I'd like to  go to "+ city.title()+'!')

7.2.5在循环中使用continue

continue语句在条件满足时返回到循环开头,重新循环。

e.g输出10以内的所有奇数。

1 current_number = 0
2 while current_number <= 10:
3     current_number += 1
4     if current_number % 2 == 0:
5         continue
6     print(current_number)

 7.3使用while循环来处理列表和字典

使用for循环修改列表会导致python难以跟踪其中的元素。

使用whlie循环可以在遍历列表的同时对其进行修改,可收集、存储并组织大量输入,供以后查看和显示。

7.3.1在列表中移动元素

应用场景:将验证用户移动到已验证用户列表。

 1 unconfirmed_users = ['alice','brain','candance']#创建一个待验证的用户列表
 2 confirmed_users = []#创建存储已验证用户列表
 3 
 4 #循环验证用户,直到没有用户为止
 5 #将经过验证的用户移动到已验证列表
 6 while unconfirmed_users:
 7     current_user = unconfirmed_users.pop()
 8     
 9     print('Verfying users: '+ current_user.title())
10     confirmed_users.append(current_user)
11     
12 #显示所有已验证的用户
13 print("\nThe following users have been confirmed: ")
14 for confirmed_user in confirmed_users:
15     print(confirmed_user.title())
Verfying users: Candance
Verfying users: Brain
Verfying users: Alice

The following users have been confirmed: 
Candance
Brain
Alice

7.3.2删除包含特定值的所有列表元素
remove()删除列表中所有的特定值
1 pets = ['dogs','cat','dog','goldfish','cat','rabbit','bird']
2 print(pets)
3 
4 while 'cat' in pets:
5     pets.remove('cat')
6     
7 print(pets)

7.3.3使用用户输入扩充字典

应用场景:创建一个调查程序,其中的循环每次执行时都提示输入被调查者的名字和回答。我们将收集的数据存储在一个字典中,以便将回答同被调查者关联起来。

 1 responses = {}
 2 
 3 polling_active = True#设置一个标志,指出调查是否继续
 4 
 5 while polling_active:#提示输入被调查者的名字和回答。
 6     name = input("What's your name? ")
 7     response = input("Which mountain would you like to climb someday? ")
 8     
 9     responses[name] = response#存储在字典中
10     
11     repeat = input("Would you like to let another person response? (yes/no)")
12     #设置退出机制
13     if repeat == 'no':
14         polling_active = False
15         
16 print("\n----Polling Results----")
17 for name,reponse in responses.items():
18     print(name+' would like to climb '+response + '.')

8.函数

是带有名字的代码块,用于完成具体的工作。

8.1定义函数

使用关键字def

使用文档字符串来注释,用三引号括起,Python使用它们来生成有关程序中函数的文档。

1 def greet_user():
2     """显示简单的问候语"""
3     print('Hello!')
4     
5 greet_user()

8.1.1传递函数

1 def greet_user(name):
2     """显示简单的问候语"""
3     print('Hello!'+name.title())
4     
5 greet_user('Fuhai Gao')

8.1.2实参和形参

传递方式:

位置实参,基于实参的顺序,所以实参的顺序很重要。

关键字实参,与顺序无关,但要指定函数定义中的形参名。

默认值:在调用时,如果给形参提供了实参,Python则调用实参值,不然就使用默认值。一般将有默认值的形参排在列表后边,方便正确解读位置实参。

8.3返回值

1 def get_formatted_name(first_name,last_name):
2     """返回整洁的姓名"""
3     full_name = first_name +' '+ last_name
4     return full_name
5 
6 musi = get_formatted_name('Gao','Fuhai')
7 print(musi)

8.3.2让实参变成可选的

 可以给形参一个空字符串,并将其移到形参列表的末尾。

 1 def get_formatted_name(first_name,last_name,middle_name = ''):
 2     """返回整洁姓名"""
 3     if middle_name:
 4         full_name = first_name +' '+middle_name+' '+ last_name
 5     else:
 6         full_name = first_name +' '+ last_name
 7     return full_name
 8 
 9 musi = get_formatted_name('Gao','Fuhai')
10 print(musi)

 8.3.3返回字典

1 def build_person(first_name,last_name,age = '' ):
2     person = {'first':first_name,'last':last_name}
3     if age:
4         person['age'] = age
5     return person
6 
7 
8 musician = build_person('jimi','hendrix')
9 print(musician)

其中,我们在字典中新增了形参age,并将其默认值设置为空字符串,使其具有可选性。

8.3.4结合使用函数和while循环

 1 def get_formatted_name(first_name,last_name):
 2     """返回整洁的姓名"""
 3     full_name = first_name +' '+ last_name
 4     return full_name
 5 while True:
 6     print("\nPlease tell me your name")
 7     print("(enter 'q' at any time to quit)")
 8     
 9     f_name = input('first_name')
10     if f_name == 'q':
11         break
12     l_name = input('last_name')
13     if l_name == 'q':
14         break
15         
16     formatted_name = get_formatted_name(f_name,l_name)
17     print("\nHello,My name is "+formatted_name+'!')

 

转载于:https://www.cnblogs.com/fzth-gfh/p/9991942.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值