Python学习笔记五--条件和循环
5.1 if语句
没什么好说,if语句语法如下:
if expression:
expr_true_suit
5.1.1多重条件表达式
单个if语句可以通过布尔操作符and,or,not实现多重条件判断或否定判断。
if not warn and (system_load>=10):
print 'WARNING:LOSING RESOURCE'
warn+=1
5.2 else 语句
如果if条件为假程序将执行else后的语句。
if expression:
expr_true_suit
else:
expr_false_suit
5.3 elif 即 else-if
elif用来检查多个表达式是否为真,若位置执行其后的语句。elif可以有任意个,但else只能有一个。
语法如下
if expression1:
expr1_true_suit
elif expression2:
expr2_true_suit
elif expression3:
expr3_ture_suit
else:
none_of_the_above_suit
5.4 三元表达式
python原来并不支持三元表达式(c?x:y)在python2.5中加入了该语法支持,并且相当美观。语法:X if C else Y
>>>x,y=4,3
>>>smaller=x if x<y else y
>>>smaller
3
5.5 while循环
5.5.1 一般语法
当条件为真是循环执行语句块内的语句,直到条件为假。
while expression:
suite_to_repeat
5.5.2 计数循环
在语句快中加入计数语句当循环执行一定次数后结束,例子如下。
count=0
while(count<9):
print 'the index is:',count
count+=1
5.5.3无线循环
condition永远为真,程序永远在循环中执行。
while True:
suite_to_repeat
5.6 for循环
python提供的另一个循环for循环,它可以遍历序列成员,可以用在列表解析和生成器中,它会自动调用next()方法。
1、用于序列类型
for可以迭代不同的序列对象包括,字符串,列表,元组。
>>>for eachLetter in 'Names'
print 'current letter:',eachLetter
current letter:N
current letter:a
current letter:m
current letter:e
current letter:s
对于列表与元组的迭代与上面相似。
2、通过序列索引迭代
首先要建立序列的索引使用range(len(list))来建立索引
>>>string='python'
>>>range(len(string))
[0,1,2,3,4,5]
>>>for index in range(len(string)):
>>> print string[index]
p
y
t
h
o
n
3、使用项和索引迭代
使用内建函数enumerate()函数同时迭代项和索引。
>>>namelist=['Donn','Ben',‘David’,'Wendy']
>>>for i,eachname in enumerate(namelist):
... print '%d,%s'%(i+1,eachname)
1,Donn
2,Ben
3,David
4,Wendy
5.7 break
break用在while和for循环中,当执行到break语句跳出当先循环执行下一语句。
def factor(num):
count=num/2
while count>0:
if num%count==0:
print count,'is largest factor of',num
break
count-=1
factor(input('please enter the number:'))
改程序用于计算数字的最大公约数。
5.8 continue
与其他语言中的continue一样,continue意为结束当前循环立即开始下一次循环,当然前提是循环先决条件依然满足。
valid=False
count=3
while count>0:
input=raw_input('enter password:\n')
for eachpwd in passwdList:
if eachpwd==input:
valid=True
print 'welcome back'
break
if not valid:
print 'invalid input'
count-=1
continue
else:
break
以上代码为continue的使用示例。
5.9 pass语句
Python中提供pass语句作为占位符。如果在某处语句块中没有任何语句编译器会报错,这时可以使用pass语句作为占位,它不做任何事情,可以作为你以后再补上代码的标记。
5.10 else的其他用法
在其他语言例如C中else不会出现在条件语句以外,但是Python中可以在循环外使用else。这很容易理解,因为循环要做的首先也是条件判断,那么必然就有条件不满足时需要执行的语句。
def MaxFactor(num):
count=num/2
while count>1:
if num%count==0:
print 'Largest Factor of %d is %d'%(num,count)
break
count-=1
else:
print num,'is prime' for eachNum in range(10,21):
MaxFactor(eachNum)
Python学习笔记五--条件和循环的更多相关文章
- Python学习笔记之条件、循环和其他语句
一.函数导入 1.为模块提供别名 >>> import math as foobar #设置math 别名为foobar >>> foobar.sqrt(4) 显示 ...
- python学习笔记2_条件循环和其他语句
一.条件循环和其他语句 1.print和import的更多信息. 1.1.使用逗号输出 //print() 打印多个表达式是可行的,用逗号隔开. 在脚本中,两个print语句想在一行输出 ...
- Python学习笔记(五)Python的切片和迭代
切片 Python提供了切片操作符,可以对list.tuple.字符串进行截取操作. list中的切片应用 语法如下: >>> L = ['Michael', 'Sarah', 'T ...
- python学习笔记五 模块下(基础篇)
shevle 模块 扩展pickle模块... 1.潜在的陷进 >>> import shelve>>> s = shelve.open("nb" ...
- python学习笔记(五):装饰器、生成器、内置函数、json
一.装饰器 装饰器,这个器就是函数的意思,连起来,就是装饰函数,装饰器本身也是一个函数,它的作用是用来给其他函数添加新功能,比如说,我以前写了很多代码,系统已经上线了,但是性能比较不好,现在想把程序里 ...
- vue学习笔记(五)条件渲染和列表渲染
前言 在众多的编程语言中,我们的基础语法总是少不了一些专业语法,比如像定义变量,条件语句,for循环,数组,函数等等,vue.js这个优秀的前端框架中也有同样的语法,我们换一个名词,将条件语句改成专业 ...
- python学习笔记五 模块上(基础篇)
模块学习 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要 ...
- python学习笔记五--文件
任何情况下文本文件在Python里均是字符串模式. 一.创建一个文件,并写入: 函数open(文件名,w) 二.打开一个文件,并读取: 函数open(文件名,r),“r”是默认值,可以不用写 三.使用 ...
- Python学习笔记五
一. 递归 递归函数: def a (): print ("from b") b() def b(): print("from a ") a() a() 递推和 ...
随机推荐
- 【日语】secret base
君(きみ)と夏(なつ)の终(お)わり 将来(しょうらい)の梦(ゆめ)Kimi to natsu no owari shourai no yume大(おお)きな希望(きぼう) 忘(わす)れないOoki ...
- C#文本转语音并保存wav和MP3文件
回顾上次写博客至今都有4个多月了,最近工作比较的忙没时间写博文.以后会多坚持写博文,与大家分享下最近遇到的问题.最近因为项目需要,研究了下用C#开发TTS.下面把大体的思路给大家说说,希望对大家有所帮 ...
- Minimum Depth of Binary Tree ——LeetCode
Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shor ...
- 自定义VIew——漂亮的圆形进度条
package com.example.firstapp; import java.text.DecimalFormat; import android.annotation.SuppressLint ...
- Android Spinner列表选择框
Spinner Spinner是一个下拉列表,通常用于选择一系列可选择的列表项,它可以使用适配器,也可以直接设置数组源. 1.直接设置数组源 在res/values/strings.xml中设置数组源 ...
- SAX PULL解析实例
XML三种解析方式: SAX解析:基于事件驱动,事件机制基于回调函数的,得到节点和节点之间内容时也会回调事件 PULL解析:相同基于事件驱动,仅仅只是回调时是常量 DOM解析:是先把XML文件装入内存 ...
- java环境下的数据库读写分离
方案很多:阿里的中间件cobar.aop注解方式.com.mysql.jdbc.ReplicationDriver读写分离驱动MySQL数据库的同步. MySQL是开源的关系型数据库系统.主从同步复制 ...
- 高仿“点触验证码”做的一个静态Html例子
先上源码: <html> <head> <title>TouClick - Designed By MrChu</title> <meta htt ...
- C#总结项目《影院售票系统》编写总结完结篇
回顾:昨天总结了影院售票系统核心部分-售票,整个项目也就完成了2/3了,需求中也要求了对销售信息的保存,今天就继续总结销售信息的保存以及加载销售信息. 分析:退出程序时将已售出票集合中的对象循环写入到 ...
- unable to convert MySQL date/time value to System.DateTime
今天 用C# MySql做项目的时候 遇到了 unable to convert MySQL date/time value to System.DateTime 这样的异常错误,这个原因是因为:表里 ...