python学习第七章:input、while、break、continue的使用

7.1 用户输入和while循环

7.1.1 函数input()的工作原理

        input()函数会暂停程序运行等待用回输入一些值,获取到之后python会将其赋值给一个变量以方便你使用。

变量 = input(参数)

大家如果不知道怎么测试input可以看看下面这篇文章或许会对你的疑问有所帮助:

优快云

7.1.2 使用int()来获取数值输入

        用户在input直接输入数字时,在python中会返回成字符串的形式,如果我们赋给它一个变量,使它直接进行比较会运行报错,因为str字符串型不能和int型进行比较。

错误示例:

解决方法:使用函数int()去改变输入的类型,将数字的字符串表示转换为数值表示。

接下来我们来完成一个作业:

如果用户输入的身高大于50inches(英寸)=127cm(厘米),可以坐过山车

如果用户输入的身高小于50inches(英寸)=127cm(厘米),不可以坐过山车

输入:

ctrl + r 打开repl(这步不了解的可以看我这篇文章的顶部链接)

7.1.3  求模运算符奇偶判定

示例:

7.2 while循环简介

        for循环用于针对集合中的每个元素的一个代码块,

        while循环不断地运行,直到指定的条件不满足为止。

7.2.1 使用while循环

目标任务:使用while循环从1开始递增,大于10就停止递增

输入:

Increasing_number = 1
while Increasing_number <= 10:
     
     print(Increasing_number)
     Increasing_number += 1

输出:

1
2
3
4
5
6
7
8
9
10

7.2.2  让用户选择何时退出——设定退出值

#空字符串            message=""

#空列表                message=[]

#空字典                message={}

如下示例:

say = "\nDo you wanto say?"
say += " enter 'quit' to end!!"
message = ""

while message != 'quit':
      message = input(say)
     # print(message)
      if message != 'quit':
          print(message)

7.2.3 标志

        定义一个变量,用于判断整个程序是否处于活动状态,这个变量被称为标志。可以让程序在标志为True时继续运行,并在任何事件导致标志的值为False时让程序停止运行。这样,在while语句中就只需检查一个条件:标志的当前值是否为True。然后将所有其他测试(是否发生了应将标志设置为False的事件)都放在其他地方,从而让程序更整洁。

输入:

say = "\nDo you wanto say?"
say += " enter 'quit' to end!!"
active = True

while active:
  message = input(say)

  if message =='quit':
    active = False
  else:
    print(message)

repl:


Do you wanto say? enter 'quit' to end!!hello
hello

Do you wanto say? enter 'quit' to end!!hello2
hello2

Do you wanto say? enter 'quit' to end!!quit

***Repl Closed***

7.2.4 使用break退出循环

不执行余下代码,退出整个循环——break

不执行余下代码,返回循环的开头——continue

要退出python循环可采用break语句,不再运行循环中余下的代码

输入:

say = "\nDo you wanto say?"
say += " enter 'quit' to end!!"

while True:
  city = input(say)

  if city =='quit':
    break
  else:
    print(f"I'd love to {city.title()}")

repl:

Do you wanto say? enter 'quit' to end!!chongqing
I'd love to Chongqing

Do you wanto say? enter 'quit' to end!!beijing
I'd love to Beijing

Do you wanto say? enter 'quit' to end!!quit

***Repl Closed***

7.2.5  在循环中使用continue

不执行余下代码,退出整个循环——break

不执行余下代码,返回循环的开头——continue

目标:从1数到20只打印奇数的循环

输入:

odd_even = 0
while odd_even <20:
  odd_even += 1
  if odd_even %2 == 0:
    continue
  print(odd_even)

输出:

1
3
5
7
9
11
13
15
17
19
[Finished in 57ms]

7.2.6  避免无限循环

当出现无限循环的时候ctrl+c直接终止程序

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

        需要记录大量的用户和信息,需要在while循环中使用列表和字典。for循环是一种遍历列表的有效方式,但不应在for循环中修改列表,否则将导致Python难以跟踪其中的元素。要在遍历列表的同时对其进行修改,可使用while循环。

7.3.1 在列表之间移动元素

函数pop()以每次一个的方式从列表末尾删除未验证的用户

# 首先,创建一个待验证用户列表。
# 和一个用于存储已验证用户的空列表。
# 验证每个用户,直到没有未验证用户为止。
# 将每个经过验证的用户都移到已验证用户列表中。
# 显示所有已验证的用户。

输入:

wait_for_verification = ['ez' , 'jinx' , 'Hwei' , 'Vayne']
authenticated = []
while wait_for_verification:
  users = wait_for_verification.pop()
  print("未验证的用户:" + users.title())
  authenticated.append(users)

print( "\n已验证的用户:")
for users in authenticated:
  print(users.title())

输出:

未验证的用户:Vayne
未验证的用户:Hwei
未验证的用户:Jinx
未验证的用户:Ez

已验证的用户:
Vayne
Hwei
Jinx
Ez
[Finished in 56ms]

7.3.2 删除包含特定值的所有列表元素

在第三章中,我们使用函数remove()来删除列表中的特定值.

输入:

animals =['dog','cat','cow','sheep','pig']
print(animals)
while 'pig' in animals:
  animals.remove('pig')

print(animals)

输出:

['dog', 'cat', 'cow', 'sheep', 'pig']
['dog', 'cat', 'cow', 'sheep']
[Finished in 58ms]

7.3.3 使用用户输入来填充字典

创建一个空字典
设置一个标志,发起调查
为true运行while循环中的代码,为false即停止
调查结束,显示结果

输入:

responses = {}
polling_active = True

while polling_active:
  user_name = input("what's your name?")
  mountain_name = input('Which one is your favorite mountain?')

  responses[user_name] = mountain_name

  repeat = input('Anyone else?(yes/no)')
  if repeat == 'no':
    polling_active = False

print('\nsummarize:')
for user_name , mountain_name in responses.items():
  print(f'{user_name} want to {mountain_name}')

输出:

what's your name?ez
Which one is your favorite mountain?ddd
Anyone else?(yes/no)yes
what's your name?jinx
Which one is your favorite mountain?bbb
Anyone else?(yes/no)no

summarize:
ez want to ddd
jinx want to bbb

***Repl Closed***

okok!!!这几天放松了一下后面继续努力。 ╰(*°▽°*)╯

                                  ———— 参考书籍Python编程:从入门到实践(第2版)埃里克·马瑟斯/袁国忠译

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值