Python编程从入门到实践之用户输入|第7天

User:你好我是森林 Date:2018-03-20 Mark:《Python从入门到实践》 原文:https://www.jianshu.com/p/994a56ac096d

用户输入和while循环

函数input()的工作原理

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

代码示例:

input_res = input("输入你最喜欢的食物:")
print(input_res)
编写清晰的程序

有时候,提示可能超过一行,例如,你可能需要指出获取特定输入的原因。在这种情况下, 可将提示存储在一个变量中,再将该变量传递给函数input()

代码示例:

prompt = "If you tell us who you are, we can personalize the messages you see."
prompt += "\nWhat is your first name? "
name = input(prompt)
print("\nHello, " + name + "!")

第1行将消息的前半部分存储在变量prompt中; 在第2行中,运算符+=在存储在prompt中的字符串末尾附加一个字符串。

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

使用函数input()时,Python将用户输入解读为字符串。如果用户输入的值需要进行和数字比较,就会发生错误,这个时候就需要转换一下。可以采用int()来进行字符串和整型之间的转换

代码示例:

age = input("请输入你的年龄: ")
age = int(age)

if age >= 18:
    print("你已经成年")
else:
    print("你还未成年")

运行示例:

➜  day6 python int.py
请输入你的年龄: 12
你还未成年
➜  day6 python int.py
请输入你的年龄: 18
你已经成年
求模运算符

处理数值信息时,求模运算符(%)是一个很有用的工具,它将两个数相除并返回余数。求模运算符不会指出一个数是另一个数的多少倍,而只指出余数是多少。如果一个数可被另一个数整除,余数就为0,因此求模运算符将返回0

代码示例:

>>> 4 % 3
1
>>> 5 % 1
0
>>> 4 % 2
0

利用这一点来判 断一个数是奇数还是偶数:

number = input("Enter a number, and I'll tell you if it's even or odd: ") 13 
number = int(number)
  if number % 2 == 0:
    print("\nThe number " + str(number) + " is even.")
else:
    print("\nThe number " + str(number) + " is odd.")

while 循环简介

for循环用于针对集合中的每个元素都一个代码块,而while循环不断地运行,直到指定的条 件不满足为止。

使用while循环
current_number = 1
while current_number <= 5:
    print(current_number) 
    current_number += 1

在第1行,我们将current_number设置为1,从而指定从1开始数。接下来的while循环被设置 成这样:只要current_number小于或等于5,就接着运行这个循环。循环中的代码打印 current_number的值,再使用代码current_number += 1(代码current_number = current_number + 1的简写)将其值加1。只要满足条件current_number <= 5Python就接着运行这个循环。

让用户选择何时退出
prompt = "\nTell me something, and I will repeat it back to you:"
prompt += "\nEnter 'quit' to end the program. "
message = "" 
while message != 'quit':
        message = input(prompt) 
        print(message)

只有当用户输入quit的时候才能推出,否者一直不能退出。

采用标志

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

使用break退出循环

要立即退出while循环,不再运行循环中余下的代码,也不管条件测试的结果如何,可使用break语句。break语句用于控制程序流程,可使用它来控制哪些代码行将执行,哪些代码行不执行,从而让程序按你的要求执行你要执行的代码。

在循环中使用continue

要返回到循环开头,并根据条件测试结果决定是否继续执行循环,可使用continue语句,它 不像break语句那样不再执行余下的代码并退出整个循环。

避免无限循环

每个while循环都必须有停止运行的途径,这样才不会没完没了地执行下去。每一个循环必须要有一个可结束的条件。

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

for循环是一种遍历列表的有效方式,但在for循环中不应修改列表,否则将导致Python难以跟踪其中的元素。要在遍历列表的同时对其进行修改,可使用while循环。通过将while循环同列表和字典结合起来使用,可收集、存储并组织大量输入,供以后查看和显示。

主要的处理有:在列表之间移动元素;删除包含特定值的所有列表元素;使用用户输入来填充字典等。

欢迎你免费加入我的星球,一起分享,共同成长。

知识星球

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能LeadAI

JAVA回调机制(CallBack)详解

什么是回调函数(Callback Function) 回调的应用场景非常广泛,在spring中可以看到很多应用了回调的地方,以调用相应的库函数为例子,当程序跑...

47850
来自专栏LhWorld哥陪你聊算法

【Linux篇】--sed的用法

Sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pat...

8420
来自专栏程序员互动联盟

【答疑解惑】C/C++参数传递

有群友问如下一个问题,他说在下图中sun函数内部的打印是对的,但是为什么调用结束之后主调的结果确是错误的。也就是说,函数sun为什么不能把相加的结果带回主调函数...

37260
来自专栏Java面试通关手册

深入理解原型模式 ——通过复制生成实例

Java面试通关手册(Java学习指南,欢迎Star,会一直完善下去,欢迎建议和指导):https://github.com/Snailclimb/Java_G...

19230
来自专栏AI研习社

嘀~正则表达式快速上手指南(下篇)

上面的代码中用 for 循环去遍历 contents 这样我们就可以一个一个处理每封邮件。我们创建一个字典, emails_dict,这将保存每个电子邮件的所有...

8010
来自专栏cloudskyme

设计模式(7)-模板(从事务处理应用的模板)

首先看一个对于数据库操作的程序: #include <iostream> using namespace std; class DataOper{ publ...

36560
来自专栏lgp20151222

@Transient 理解

transient使用小结 1)一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问。 2)transient...

11910
来自专栏不会写文章的程序员不是好厨师

[翻译]Java 6,7,8中的String.intern

最近一直在关注“故障排查”的相关知识,首先着手的是OOM的异常。OOM异常通常会有Perm区的OOM(java7及以前)和HeapSpace的OOM,这两种各有...

19120
来自专栏算法channel

面试被问到动态内存分配时需要注意哪些坑,该怎么回答?

面试时,面试官问我们Java,Python这种语言那是必须要准确回答的,很多系统如果对性能要求高的话,底层一般会用到C/C++语言,因此被问到底层语言的相关知识...

15830
来自专栏Java成长之路

三、JVM之对象的创建

上篇博文中已经介绍过了jvm内存的概况,接下来我们从jvm的角度来重新来认识一下Java对象是如何创建。 Java是一门面向对象的语言,在Java程序运行的...

10120

扫码关注云+社区

领取腾讯云代金券