Python学习--04条件控制与循环结构

支持

  • ifif...elseif...elif ...if
  • while
  • for ... in...
  • continue, break
  • pass

没有switch-case;没有普通的for x;y;z条件循环。

条件控制

在Python程序中,用if语句实现条件控制。

语法格式:

if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>

注意语句后面的冒号:。像经典的C、Java都是以花括号来区分代码块,但是Python没有使用花括号表示,而是缩进,所以一定需要了解它们的语法区别。

示例:

age = 3
if age >= 18:
print('adult')
elif age >= 6:
print('teenager')
else:
print('kid')

循环控制

Python里有2种循环结构:

1、for...in

2、while

注意Python里没有C语言里经典的for循环结构,也没有PHP里的foreach结构。

for...in

for...in循环会依次把list或tuple中的每个元素迭代出来,示例:

names = ['Michael', 'Bob', 'Tracy']
for name in names:
print(name)

输出:

Michael
Bob
Tracy

注意for语句后面的冒号:

再看个求和的例子:

sum = 0
for x in range(101):
sum = sum + x
print(sum)

输出:

5050

注意的是,range(101)生成的是0-100的整数序列,不是到101。

对于字典(dict),for...in循环迭代的是key,而不是value:

dict = {"name":"yjc", "age":18}
for x in dict:
print(x, dict[x])

输出:

name yjc
age 18

while

while循环是其它语言里很经典的循环结构,Pyhton里同样支持。

sum = 0
n = 0
while n < 101:
sum = sum + n
n = n + 1
print(sum)

while循环里只要条件满足,就不断循环,条件不满足时退出循环。需要注意while语句后面的冒号:

循环控制语句

循环里如果我们想终止本次循环,可以使用continue;如果想终止整个循环,则使用break

看看下面这个例子:

sum = 0
n = 0
while n < 5:
n = n + 1
if n == 3:
break #试试替换成continue
sum = sum + n
print(sum)

输出:

# 使用break:
3 # 使用continue:
12

空语句

Python里使用pass表示空语句,即啥也不做。

if age >= 18:
pass

在C语言里等同于:

if( age>=18 ){

}

pass语句什么都不做,那有什么用?实际上pass可以用来作为占位符,比如现在还没想好怎么写函数的代码,就可以先放一个pass,让代码能运行起来。

因为在其它语言里有花括号,如果花括号里面为空,代表啥也不做,但Python没有花括号,缺少了pass,代码运行就会有语法错误。

Switch/Case模拟

Python没有switch-case,过去写C习惯用Switch/Case语句,官方文档说通过if-elif实现。所以不妨自己来实现Switch/Case功能。

1、通过字典实现

def foo(var):
return {
'a': 1,
'b': 2,
'c': 3,
}.get(var,'error') #'error'为默认返回值,可自设置

2、通过匿名函数实现

def foo(var,x):
return {
'a': lambda x: x+1,
'b': lambda x: x+2,
'c': lambda x: x+3,
}[var](x)

参考

1、循环

http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431676242561226b32a9ec624505bb8f723d0027b3e7000

2、python中Switch/Case实现 - gerrydeng - 博客园

https://www.cnblogs.com/gerrydeng/p/7191927.html

最新文章

  1. .net 4.0 ValidateRequest=&quot;false&quot; 无效
  2. MDK for ARM (keil) 编译后的信息
  3. logresolve - 解析Apache日志中的IP地址为主机名
  4. nginx限制上传大小和超时时间设置说明/php限制上传大小
  5. sql查看数据字典(表结构)
  6. -Xloggc:log/gc.log 指定GC log的位置
  7. Your content must have a ListView whose id attribute is &#39;android.R.id.list&#39;
  8. 如何在windows下安装python第三方包
  9. location将地址栏参数拆分成键值对的对象
  10. Excel 自定义函数
  11. 2016大连网络赛 Different GCD Subarray Query
  12. 深入理解Java内部类
  13. webpack打包体积优化
  14. 关于这个该死的报错:TypeError - &#39;undefined&#39; is not a function (evaluating &#39;_getTagName(currWindow).toLowerCase()&#39;)
  15. 4、hello world
  16. UVC 驱动调用过程与驱动框架的简单分析
  17. 大规模数据导入和导出(oracle)
  18. 关于AutoMApping 实体映射
  19. Sql server 索引详解
  20. Spring-Boot服务注册与发现

热门文章

  1. 调用AJAX做登陆和注册
  2. Webpack 配置摘要
  3. 【原创经验分享】WCF之消息队列
  4. iOS逆向工程之Hopper+LLDB调试第三方App
  5. SDWebImage源码解读之SDWebImageCache(下)
  6. Autofac - 生命周期
  7. Tomcat常见问题及常用命令
  8. animate.css(第三方动画使用方法)
  9. Js 数组返回去重后的数据
  10. BPM SharePoint解决方案分享