python10:条件判断和循环

程序不总是顺序执行的,所以需要条件控制语句来支持分支处理,循环来处理反复多次调用。下面将减少python中的条件判断和循环语法。

条件判断

条件判断就是当某个条件为真时执行某个程序片段,否则执行另一个。

>>> x = int(input("Please enter an integer: "))
Please enter an integer: 2
>>> if x < 0:
		x = 0
		print('Negative changed to zero')
	elif x == 0:
		print('Zero')
	elif x == 1:
		print('Single')
	else:
		print('More')
More

循环

while

如果你需要在条件满足时反复的做一件事情,则可以使用while语句,下面是Fibonacci序列的例子。

>>> a, b = 0, 1
>>> while b < 100:
		print(b, end = ', ')
		a, b = b, a+b
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 

再看下面的例子,循环直到用户输入不为空的名字,然后打印名字。

name = ''
while not name:
    name = input('Please enter your name : ')
print('Hello.%s!' ,name)

for

Python中for语句和其它语言中的有些不同,Python中的for语句总是在序列(list或者String)上迭代,按照元素出现在序列中的顺序。例如:

>>> words = ['cat', 'window', 'defenestrate']
>>> for w in words:
	print(w, len(w))

cat 3
window 6
defenestrate 12

如果你需要修改你正在迭代的这个序列,你最好在迭代之前复制一个拷贝,使用切片可以很容易的做到。继续使用上面的words:

>>> for w in words[:]:
	if len(w) > 6:
		words.insert(0, w)

>>> words
['defenestrate', 'cat', 'window', 'defenestrate']

range()

如果你需要在一个数字序列上做迭代,则可以使用range(),它用于产生一个数字序列。

>>> for i in range(5):
	print(i)

0
1
2
3
4

range()产生的序列不包含结束点,range(10)产生10个值,从0开始,9结束。可以为range()指定一个起始点,或者指定一个步长:

>>> list(range(5, 10))
[5, 6, 7, 8, 9]
>>> list(range(0, 10, 3))
[0, 3, 6, 9]
>>> list(range(-10, -100, -30))
[-10, -40, -70]

可以使用range()和len()方便的遍历一个序列:

>>> a = ['Mary', 'had', 'a', 'little', 'lamb']
>>> for i in range(len(a)):
	print(i, a[i])

0 Mary
1 had
2 a
3 little
4 lamb

需要注意的是,range()给人的感觉是返回一个序列,但实际上它不是。它返回的是一个对象,当你迭代该对象时,该对象将按照你指定的顺序返回你想要的元素,但是它不是一个真正的序列,因此不会占用空间。看下面的输出:

>>> print(range(10))
range(0, 10)

break、continue和else

break用于中断最近的那个循环(for或者while)。

循环可以有一个else子句,用于当循环完成后或者循环条件为false后执行,但不会在循环遭遇break后执行,看下面的例子:

>>> for n in range(2, 10):
		for x in range(2, n):
			if n % x == 0:
			   print(n, 'equals', x, '*', n // x)
			   break
		else:
			# loop fell through without finding a factor
			print(n, 'is a prime number')

2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3

上面例子中的else字句对应到内部的for循环,而不是if语句,当没有break执行时,else子句将被执行。

continue字句用于中止这次循环,继续下一次:

>>> for num in range(2, 10):
		if num % 2 == 0:
			print("Found an even number", num)
			continue
		print("Found a number", num)

Found an even number 2
Found a number 3
Found an even number 4
Found a number 5
Found an even number 6
Found a number 7
Found an even number 8
Found a number 9

pass

pass什么也不做,当语法上要求需要一个子句,但你不想进行任何行为时,可以使用。例如:

>>> class MyEmptyClass:
		pass

这里定义了一个空类。也可以定义一个空函数:

>>> def initlog(*args):
		pass

一般在进行测试时可以使用pass。

循环技巧

循环获取字典的key和value

对字典进行循环时,使用字典的items()方法,可以同时获取key和value。

>>> knights = {'gallahad': 'the pure', 'robin': 'the brave'}
>>> for k, v in knights.items():
		print(k, v)

gallahad the pure
robin the brave

循环序列同时获取索引和值

使用那个enumerate()函数可以同时获取序列的索引和值:

>>> for i, v in enumerate(['tic', 'tac', 'toe']):
		print(i, v)

0 tic
1 tac
2 toe

循环多个序列

只用zip()函数可以同时循环多个序列。

>>> questions = ['name', 'quest', 'favorite color']
>>> answers = ['lancelot', 'the holy grail', 'blue']
>>> for q, a in zip(questions, answers):
	print('What is your {0}?  It is {1}.'.format(q, a))

What is your name?  It is lancelot.
What is your quest?  It is the holy grail.
What is your favorite color?  It is blue.

反向遍历序列

使用reversed()函数可以反向遍历序列。

>>> for i in reversed(range(1, 10, 2)):
	print(i)

9
7
5
3
1

遍历排序后的序列

sorted()函数返回一个新的排序后的序列,用于遍历,并且避免源序列被改变。

>>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']
>>> for f in sorted(set(basket)):
	print(f)

apple
banana
orange
pear

循环期间改变序列

如果需要在循环期间改变序列,你需要在循环前先将序列拷贝一份,使用切片可以很容易做到:

>>> words = ['cat', 'window', 'defenestrate']
>>> for w in words[:]:    #循环前拷贝
	if len(w) > 6:
		words.insert(0, w)

>>> words
['defenestrate', 'cat', 'window', 'defenestrate']
时间: 2024-11-10 09:27:34

python10:条件判断和循环的相关文章

Sass学习笔记 -- 初步了解函数、运算、条件判断及循环

函数 sass定义了很多函数可供使用,当然你也可以自己定义函数,以@fuction开始.sass的官方函数链接为:sass fuction,实际项目中我们使用最多的应该是颜色函数,而颜色函数中又以lighten减淡和darken加深为最,其调用方法为lighten($color,$amount)和darken($color,$amount),它们的第一个参数都是颜色值,第二个参数都是百分比. //scss $baseFontSize:      10px !default; $gray:    

Python_条件判断和循环

条件判断和循环 author:lxy 条件判断让计算机自己选择做什么 循环让计算机做重复的工作 条件判断: if ...elif....else.... if <判断条件>: <语句块> elif <判断条件>: <语句块> else: <语句块> 说明: 用法感觉和Java没什么不同吧,除了语法写起来有限不一样 注意每一个判断条件之后和else加: elif 是else if是简写 判断条件可以简写,比如if x:只要x是非零数值.飞空字符串.

python入门(11)条件判断和循环

python入门(11)条件判断和循环 条件判断 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现: age = 20 if age >= 18: print 'your age is', age print 'adult' 根据Python的缩进规则,如果if语句判断是True,就把缩进的两行print语句执行了,否则,什么也不做. 也可以给if添加一个else语句,意思是,如果if判断是False,

python之--条件判断和循环

Python之判断 和其他语言一样,python同样具有条件判断和循环的操作,比如我们可以编写一个简单的判断操作:使用if关键字可以达到判断的效果,如下例: 1 >>> test_if = raw_input() 2 50 3 >>> if test_if < 50: 4 ... print "you are so yamg" 5 ... else: 6 ... print "you are so old!" 7 ... 8

hell脚本编写 之 条件选择,条件判断,循环语句

1 概述 编写shell脚本,一般离不开条件选择,条件判断以及循环语句.掌握这三个语法,将大大提高脚本的编写效率,使得脚本编写更加灵活,完成X相对复杂的工作 2 条件选择if语句 if语句选择执行,逐条件进行判断,第一次遇为"真"条件时,执行其分支,而后结束整个if语句 if是根据判读条件的命令的退出状态来执行命令,if语句可嵌套 单分支 if 判断条件;then 条件为真的分支代码 fi 双分支 if 判断条件; then 条件为真的分支代码 else 条件为假的分支代码 fi 多分

条件判断及循环

什么是语句? 每一个代码,都是一个语句. 最基本的语句:赋值语句.运行函数(方法) 条件语句:if 循环语句:for.while循环,遍历系列.字典等 函数语句:def函数等 模块语句:import if 语句 if语句必须有冒号: 自动缩进 if语句写完后,要退回原有缩进继续写 python代码缩减规则:具有相同缩进的代码被视为代码块 输入函数:input() if-else 存在两种不同情况 elif 多条件判断 for 循环 遍历循环 for i in XXX 嵌套循环 for i in

判断、条件判断、循环、跳转语句

<html> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&

Python条件判断和循环

一.Python 之 if条件判断 语句 (1).Python 之 if--if语句后面接表达式,然后用 : 表示代码开始           注意: Python代码的缩进规则.缩进要严格按照Python的习惯用法:4个空格,不要使用TAb,更不要混合Tab和空格,否则很容易造成因为缩进引起的语法错误.          如果你在Python交互环境下敲代码,还要特别留意缩进,并且退出缩进需要多敲一行回车:    >>> age = 20 >>> if age >

python(day1) - 条件判断和循环

条件判断: 比如输入用户年龄,根据年龄打印不同的内容,在python中用if语句实现: age = 20 if age >= 18: print('你可以看这个视频!') 可以给if加一个else,意思是如果if判断是False,就执行else里的内容 age = 20 if age >= 18: print('你可以看这个视频!') else: print('你不能观看这个视频!) 注意, 不要忘了 : 当然判断还可以做得更细一些 age =20 if age <18: print('