读书笔记「Python编程:从入门到实践」_7.用户输入和while循环
7.1 函数input()的工作原理
函数input() 让程序暂停运行,等待用户输入一些文本。获取用户输入后,Python将其存储在一个变量中,以方便你使用。
- message = input("Tell me something, and I will repeat it back to you: ")
- print(message)
- Tell me something, and I will repeat it back to you: hello world
- hello world
7.1.1 编写清晰的程序
通过在提示末尾(这里是冒号后面)包含一个空格,可将提示与用户输入分开,让用户清楚地知道其输入始于何处
有时候,提示可能超过一行,例如,你可能需要指出获取特定输入的原因。在这种情况下,可将提示存储在一个变量中,再将该变量传递给函数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 + "!")
- If you tell us who you are, we can personalize the messages you see.
- What is your first name? chang
- Hello, chang!
7.1.2 使用int()来获取数值输入
函数int() 将数字的字符串表示转换为数值表示
7.1.3 求模运算符
求模运算符 (%)是一个很有用的工具,它将两个数相除并返回余数
- number = input("请输入一个数字,我将告诉您这个是奇数还是偶数: ")
- number = int(number)
- if number%2 == 0:
- print("您输入的是偶数")
- else:
- print("您输入的是奇数")
- 请输入一个数字,我将告诉您这个是奇数还是偶数: 123
- 您输入的是奇数
7.1.4 在Python 2.7中获取输入
如果你使用的是Python 2.7,应使用函数raw_input() 来提示用户输入。这个函数与Python 3中的input() 一样,也将输入解读为字符串。
Python 2.7也包含函数input() ,但它将用户输入解读为Python代码,并尝试运行它们。因此,最好的结果是出现错误,指出Python不明白输入的代码;而最糟的结果是,将运行你原本无意运行的代码。
如果你使用的是Python 2.7,请使用raw_input() 而不是input() 来获取输入。
7.2 while循环简介
7.2.1 使用while循环
7.2.2 让用户选择何时退出
中定义了一个退出值,只要用户输入的不是这个值,程序就接着运行
7.2.3 使用标志
定义一个变量,用于判断整个程序是否处于活动状态。这个变量被称为标志
7.2.4 使用break退出循环
要立即退出while 循环,不再运行循环中余下的代码,也不管条件测试的结果如何,可使用break 语句。
7.2.5 在循环中使用continue
continue 语句,让Python忽略余下的代码,并返回到循环的开头。
7.2.6 避免无限循环
- active = True
- while active:
- message = input("请输入你的姓名:")
- if message == "quit":
- break
- elif message == "continue":
- continue
- else:
- print("你好," + message)
- 请输入你的姓名:chang
- 你好,chang
- 请输入你的姓名:continue
- 请输入你的姓名:li
- 你好,li
- 请输入你的姓名:quit
- Process finished with exit code 0
7.3 使用while循环来处理列表和字典
for 循环是一种遍历列表的有效方式,但在for 循环中不应修改列表,否则将导致Python难以跟踪其中的元素。要在遍历列表的同时对其进行修改,可使用while 循环。
通过将while 循环同列表和字典结合起来使用,可收集、存储并组织大量输入,供以后查看和显示。
7.3.1 在列表之间移动元素
- checkList = ["aaa","bbb","ccc"]
- checkedList = []
- while checkList:
- item = checkList.pop()
- print(item + ":checked")
- checkedList.append(item)
- for item in checkedList:
- print(item.title())
- ccc:checked
- bbb:checked
- aaa:checked
- Ccc
- Bbb
- Aaa
7.3.2 删除包含特定值的所有列表元素
- checkList = ["aaa","bbb","ccc","aaa","bbb","ccc"]
- print(checkList)
- while "bbb" in checkList:
- checkList.remove("bbb")
- print(checkList)
- ['aaa', 'bbb', 'ccc', 'aaa', 'bbb', 'ccc']
- ['aaa', 'ccc', 'aaa', 'ccc']
7.3.3 使用用户输入来填充字典
- responses = {}
- active = True
- while active:
- name = input("请输入您的姓名:")
- response = input("请输入您喜欢的颜色:")
- responses[name] = response
- repeat = input("您还想介绍其他人回答吗(yes/no)")
- if repeat == "no" :
- active = False
- print(responses)
- for name,response in responses.items():
- print(name + "喜欢的颜色是:" + response)
- 请输入您的姓名:chang
- 请输入您喜欢的颜色:yellow
- 您还想介绍其他人回答吗(yes/no)yes
- 请输入您的姓名:li
- 请输入您喜欢的颜色:red
- 您还想介绍其他人回答吗(yes/no)yes
- 请输入您的姓名:wang
- 请输入您喜欢的颜色:blue
- 您还想介绍其他人回答吗(yes/no)no
- {'chang': 'yellow', 'li': 'red', 'wang': 'blue'}
- chang喜欢的颜色是:yellow
- li喜欢的颜色是:red
- wang喜欢的颜色是:blue
读书笔记「Python编程:从入门到实践」_7.用户输入和while循环的更多相关文章
- 读书笔记「Python编程:从入门到实践」_11.测试函数
11.1 测试函数 要学习测试,得有要测试的代码.下面是一个简单的函数,它接受名和姓并返回整洁的姓名: def get_formatted_name(first, last): "" ...
- 读书笔记「Python编程:从入门到实践」_10.文件和异常
10.1 从文件中读取数据 10.1.1 读取整个文件 with open(~) as object: contents=object.read() with open('C:/Users/jou/ ...
- 【笔记】Python编程 从入门到实践 第二版(基础部分)
1 字符串相关函数 .title() # 将字符串每个单词的首字母大写 .upper() #不改变字符串变量的值 .lower() #不改变字符串变量的值 f"{var} ,字符串" ...
- python从入门到实践-7章用户输入和while循环
#!/user/bin/env python# -*- coding:utf-8 -*- # input() 可以让程序暂停工作# int(input('please input something: ...
- 读书笔记「Python编程:从入门到实践」_9.类
9.1 创建和使用类 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想. OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 把 ...
- 读书笔记「Python编程:从入门到实践」_8.函数
8.1 定义函数 def greet_user(): # def 来告诉Python你要定义一个函数.这是函数定义 """Hello World""& ...
- 读书笔记「Python编程:从入门到实践」_6.字典
6.1 一个简单的字典 alien_0 = {'color': 'green', 'points': 5} print(alien_0['color']) print(alien_0['points' ...
- 读书笔记「Python编程:从入门到实践」_5.if语句
5.1 一个简单示例 cars = ['audi', 'bmw', 'subaru', 'toyota'] for car in cars: if car == 'bmw': print(car.up ...
- 读书笔记「Python编程:从入门到实践」_4.操作列表
4.1 遍历整个列表 4.1.1 深入地研究循环 4.1.2 在for循环中执行更多的操作 4.1.3 在for循环结束后执行一些操作 例 magicians = ['alice', ' ...
随机推荐
- [转]如何有效地报告Bug
英文原文:Simon Tatham,编译:Dasn 引言 为公众写过软件的人,大概都收到过很拙劣的bug报告,例如: 在报告中说“不好用”: 所报告内容毫无意义: 在报告中用户没有提供足够的信息: 在 ...
- mybatis源码阅读-MappedStatement各个属性解析过程(八)
调用方 类org.apache.ibatis.builder.xml.XMLMapperBuilder private void configurationElement(XNode context) ...
- 清北学堂模拟赛d7t1 消失的数字
题目描述 现在,我的手上有 n 个数字,分别是 a1; a2; a3; :::; an.我现在需要删除其中的 k 个数字.当然我不希望随随便便删除,我希望删除 k个数字之后,剩下的 n - k 个数中 ...
- DTrace Probes In MySQL 自定义探针
Inserting user-defined DTrace probes into MySQL source code is very useful to help user identify the ...
- Android使用GestureDetector实现手势滑动效果
直接看实例: package com.example.gesturedetector; import android.os.Bundle; import android.app.Activity; i ...
- 《Java课程实习》日志(周二)
import java.awt.EventQueue; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.sw ...
- java 集合交并补
通过使用泛型方法和Set来表达数学中的表达式:集合的交并补.在下面三个方法中都将第一个參数Set复制了一份,并未直接改动參数中Set. package Set; import java.util.Ha ...
- luogu2746 校园网
题目大意: 一些学校连入一个电脑网络.那些学校已订立了协议:每个学校都会给其它的一些学校分发软件(称作“接受学校”).注意即使 B 在 A 学校的分发列表中, A 也不一定在 B 学校的列表中. 你要 ...
- Android 系统开机logo的修改【转】
本文转载自:http://blog.csdn.net/yandongqiangZHRJ/article/details/8585273 看到了好几个修改logo的博文,但是说的不是很清楚,在这里亲手送 ...
- Swift版本UIWebView长按保存图片
起因 最近需要做个IOS的壳子,用到长按保存图片的功能,发现百度出来的全是OC语法的例子,很多都不是全面,只能自己写一份Swift版本的,图片下面附上Github地址 效果图 Github地址:htt ...