Python用户交互与流程控制
1. 用户交互
python3通过input实现用户交互,与python2的raw_input一样,接收的值都转换成字符串格式。python2中也有一个input,而python2中的input接收的值不转换,保留原始数据类型,即输入什么就是什么,python3种已经去除。
x = input("请输入:")
print(type(x))
#转换成整数
x = int(input("请输入:"))
print(type(x)) #判断输入字符为数字的方法
num = input("请输入号码:")
if num.isdigit():
num = int(num)
print("num:",num,type(num))
else:
print("输入错误!")
2. 条件判断语句
条件语句是指根据条件表达式的不同计算结构,使流程流转至不同的代码块。
if(条件):
...
else:
...
或
if 条件: #括号可以省略
...
else:
...
或
if 条件:
...
elif 条件:
...
else:
...
score = float(input("input your score:"))
if 90<= score <=100:
print('A')
elif 80 <= score <90:
print("B")
elif 60 <= score <80:
print('C')
elif 0 <=score <60:
print('D')
else:
print("Error")
3. switch语句的替代方案
switch语句多用于编写多分支结构的程序,比if...elif...else...语句更清晰,代码可读性更高。但是python没有提供switch语句,可以通过字典实现switch语句的功能。
from __future__ import division x = 5
y = 2
operator = '*'
res = {
"+":x+y,
"-":x-y,
"*":x*y,
"/":x/y
}
print(res.get(operator))
另一种使用switch分支语句的方案是创建一个switch类,处理程序的流转。
class switch(object):
def __init__(self,value):
self.value = value
self.fall = False
#如果匹配到的case语句中没有break,则fall为True def __iter__(self):
yield self.match #调用match方法返回一个生成器
raise StopIteration #StopIteration异常来判断for循环是否结束 def match(self,*args):
if self.fall or not args:
return True
elif self.value in args:
self.fall = True
return True
else:
return False operator = "*"
x = 5
y = 2 for case in switch(operator): #switch只能用于for in循环中
if case('+'):
print(x+y)
break;
if case('-'):
print(x-y)
break;
if case('*'):
print(x*y)
break;
if case('/'):
print(x/y)
break;
if case(): #默认分支
print('---')
switch语句造成代码不易维护,使源文件臃肿。面向对象的设计中常常对switch语句进行重构,把switch语句分解成若干类。对于简单的switch分支流程可以使用字典来实现。使用字典更容易管理switch,而switch类回到了C、Java的老路上,而且写法更复杂,不值得推荐。
4. 循环语句
循环语句是指重复执行同一段代码,通常用于遍历集合或者累加计算。
- while循环
while(表达式): #()可以省略
...
else:
...
当表达式为真时,依次执行while中的语句,知道循环表达式值为False。程序的流程转到else语句,其中else子句可以省略,表达式两边的括号也可以省略。
n = 0;
while n<=10:
print(n)
n+=1
else:
print("输出完毕!")
- for循环
for循环用于遍历一个集合,一次访问集合中的每个项目。
for 变量 in 集合:
...
else:
...
每次循环从集合中取出一个值赋给变量。集合可以是元组、列表、字典等数据结构。最后一次循环结构执行else子句,else子句可以省略。
for...in...循环通常与range()函数一起使用,range()返回一个列表。
range()函数使用:
for i in range(10): #默认从0开始每次加1直到这个10为止(不包含10)。
print(i) for i in range(2,10,2): #默认从2开始,每次加2,直到10为止(不包含10)。
print(i) '''
range语法:
range(stop) -> range object
range(start, stop[, step]) -> range object
'''
5. break和continue语句
break:跳出整个循环
continue:跳出本次循环,继续下次循环
#输出小于5的数
for i in range(10):
if i ==5:
break
print(i) #0 1 2 3 4 #输出偶数
for j in range(10):
if j%2 !=0:
continue
print(j) #0 2 4 6 8
Python用户交互与流程控制的更多相关文章
- Python基础之用户交互、流程控制、循环语句
python的简洁性真的令人叹为观止,没有JAVA那种输入还要导个包,不学不知道,一学吓一跳啊! 我在学这些基础的时候,会把python和java.c做对比,这样更好的理解记忆! 用户交互(输入) i ...
- python - 用户交互/数据类型/格式化输出/运算符/流程控制单双多分支
python:用户交互: 等用户输入,做反应: username=input("username:")password=input("password:")pr ...
- python语法入门之流程控制
python语法入门之流程控制 流程控制是指控制流程,具体指控制程序执行的流程. 流程控制分为三种: 1.顺序结构 程序从上而下的正常执行(正常执行的代码就是顺序结构) 2.分支结构 赋予程序人的思维 ...
- Python第四天 流程控制 if else条件判断 for循环 while循环
Python第四天 流程控制 if else条件判断 for循环 while循环 目录 Pycharm使用技巧(转载) Python第一天 安装 shell 文件 Python第二天 ...
- Python分支结构与流程控制
Python分支结构与流程控制 分支结构 if 语句 分支结构在任何编程语言中都是至关重要的一环,它最主要的目的是让计算机拥有像人一样的思想,能在不同的情况下做出不同的应对方案,所以if语句不管是在什 ...
- Day01_变量,数据类型_程序交互_流程控制
python执行的两种方式: 1,交互的方式: 优点:可以及时调试程序,调试方法 缺点: 无法永久保存代码 2,保存在文件中执行 优点:可以永久保存代码,在执行的时候调用 缺点:不能即时调试代 ...
- 【Python】Java程序员学习Python(六)— 流程控制、异常处理
和Java语言一样,Python也有基本的流程控制,简单了解下即可. 一.流程控制的元素 条件 条件就是布尔值或者布尔值的表达式,要么是True要么是False. 代码块 在Python中,代码块不是 ...
- day 01 常量 注释 int(整型) 用户交互input 流程控制语句if
python的编程语言分类(重点) if 3 > 2: 编译型: 将代码一次性全部编译成二进制,然后再执行. 优点:执行效率高. 缺点:开发效率低,不能跨平台. 代表语言:C 解释型: 逐行解释 ...
- Python 入门基础3 --流程控制
今日目录: 一.流程控制 1. if 2. while 3. for 4. 后期补充内容 一.流程控制--if 1.if判断: # if判断 age = 21 weight = 50 if age & ...
随机推荐
- Educational Codeforces Round 3 B
B. The Best Gift time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...
- Oracle外连接与条件的组合
由于很少使用SQL 92语法,今天写个outer join的时候被搞晕了.参考了一些例子后整理如下.总结,"inter join on"中的条件是对table进行joining的r ...
- Go语言基础之19--web编程基础
一.web编程基础 1.1 web工作方式 1.2 HTTP协议详解 a.http 请求包体 GET /domains/example/ HTTP/1.1 //请求行: 请求方法 请求URI HTTP ...
- Go语言基础之6--值类型和引用类型
一. 引用类型 引用类型理解为(C语言):指针 Golang中只有三种引用类型:slice(切片).map(字典).channel(管道): 实例1-1 package main import &qu ...
- linux开机启动服务学习chkconfig命令
选项: --add:增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据: --del:删除所指定的系统服务,不再由chkconfig指令管理,并同时在系 ...
- MemoryFile匿名共享内存
Android提供了一个高效的共享内存机制.如果应用中涉及到在多个进程间交换数据时使用Android提高的共享内存机制将会大大的提高效率.但是也许是出于安全考虑,在应用层使用共享内存机制将会遇到很多障 ...
- 关于Ajax的优点与缺点
AJAX (Asynchronous Javascript and XML) 是一种交互式动态web应用开发技术,该技术能提供富用户体验. 完全的AJAX应用给人以桌面应用的感觉.正如其他任何技术,A ...
- Java基础04-数据的输入
1.为什么要有数据的输入? 实现人机进行交互 2.什么是数据的输入? 利用扫描仪Scanner进行数据输入 3.怎么使用扫描仪Scanner? (1)放在类声明之前,引入扫描仪 import java ...
- 使用WindowsAPI播放PCM音频
这一篇文章同上一篇<使用WindowsAPI获取录音音频>原理具有相似之处,不再详细介绍函数与结构体的参数 1. waveOutGetNumDevs 2. waveOutGetDevCap ...
- [转]jQuery Mobile: Get data passed to page via changePage mobile.changePage
本文转自:http://stackoverflow.com/questions/15840611/jquery-mobile-get-data-passed-to-page-via-changepag ...