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用户交互与流程控制的更多相关文章

  1. Python基础之用户交互、流程控制、循环语句

    python的简洁性真的令人叹为观止,没有JAVA那种输入还要导个包,不学不知道,一学吓一跳啊! 我在学这些基础的时候,会把python和java.c做对比,这样更好的理解记忆! 用户交互(输入) i ...

  2. python - 用户交互/数据类型/格式化输出/运算符/流程控制单双多分支

    python:用户交互: 等用户输入,做反应: username=input("username:")password=input("password:")pr ...

  3. python语法入门之流程控制

    python语法入门之流程控制 流程控制是指控制流程,具体指控制程序执行的流程. 流程控制分为三种: 1.顺序结构 程序从上而下的正常执行(正常执行的代码就是顺序结构) 2.分支结构 赋予程序人的思维 ...

  4. Python第四天 流程控制 if else条件判断 for循环 while循环

    Python第四天   流程控制   if else条件判断   for循环 while循环 目录 Pycharm使用技巧(转载) Python第一天  安装  shell  文件 Python第二天 ...

  5. Python分支结构与流程控制

    Python分支结构与流程控制 分支结构 if 语句 分支结构在任何编程语言中都是至关重要的一环,它最主要的目的是让计算机拥有像人一样的思想,能在不同的情况下做出不同的应对方案,所以if语句不管是在什 ...

  6. Day01_变量,数据类型_程序交互_流程控制

    python执行的两种方式: 1,交互的方式:  优点:可以及时调试程序,调试方法  缺点: 无法永久保存代码 2,保存在文件中执行  优点:可以永久保存代码,在执行的时候调用  缺点:不能即时调试代 ...

  7. 【Python】Java程序员学习Python(六)— 流程控制、异常处理

    和Java语言一样,Python也有基本的流程控制,简单了解下即可. 一.流程控制的元素 条件 条件就是布尔值或者布尔值的表达式,要么是True要么是False. 代码块 在Python中,代码块不是 ...

  8. day 01 常量 注释 int(整型) 用户交互input 流程控制语句if

    python的编程语言分类(重点) if 3 > 2: 编译型: 将代码一次性全部编译成二进制,然后再执行. 优点:执行效率高. 缺点:开发效率低,不能跨平台. 代表语言:C 解释型: 逐行解释 ...

  9. Python 入门基础3 --流程控制

    今日目录: 一.流程控制 1. if 2. while 3. for 4. 后期补充内容 一.流程控制--if 1.if判断: # if判断 age = 21 weight = 50 if age & ...

随机推荐

  1. 练习五十六:for循环

    某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换 方法一: def o ...

  2. java——数组操作

    排序.二分查找.复制数组.填充 package follow_pack; import java.util.Arrays; import java.text.DecimalFormat; public ...

  3. Codecraft-18 and Codeforces Round #458 (Div. 1 + Div. 2, combined) F. Substrings in a String

    http://codeforces.com/contest/914/problem/F 以前做过一个类似的,但是查询的子串长度最多是10,这个时候就是用bit + hash做了.这是因为改变一个字符, ...

  4. Java基础04-数据的输入

    1.为什么要有数据的输入? 实现人机进行交互 2.什么是数据的输入? 利用扫描仪Scanner进行数据输入 3.怎么使用扫描仪Scanner? (1)放在类声明之前,引入扫描仪 import java ...

  5. 性能测试工具LoadRunner15-LR之负载生成器(Load Generators)

    简介 对场景进行设计后,需要对负载生成器进行管理和配置.Load Generators是运行脚本的负载引擎(相当于加压机)主要功能是生成虚拟用户进行负载,在默认情况下使用本地的负载生成器来运行脚本. ...

  6. (转)轻松掌握shell编程中数组的常见用法及示例

    缘起:在老男孩进行linux培训shell编程教学中,发现不少水平不错的网友及同学对数组仍然很迷糊,下面就给大家分享下数组的用法小例子,希望能给大家一点帮助.其实SHELL的数组很简单,好用.我们学习 ...

  7. 连接虚机中的mysql服务

    1:修改mysql库中的user表的root用户的host值为% 2:授权:在mysql命令中执行 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFI ...

  8. WEBAPI测试

    测试 #region 测试 [HttpPost] public HttpResponseMessage UserData(int userId, string userName) { var user ...

  9. Day4上午

    expect100+50+50, In fact 100+10+0. 代码能力还有待提高,部分分应该能拿的.结果...力不从心啊. T1 贪心做的不知对不对. 看来思路是对的,不知道能不能对. 暴力做 ...

  10. Chrome谷歌浏览器中js代码Array.sort排序的bug乱序解决办法

    [现象] 代码如下: var list = [{ n: "a", v: 1 }, { n: "b", v: 1 }, { n: "c", v ...