Python if else语句
if 语句是用来检查一个条件:如果条件为真(true),我们运行一个语句块(你为if块),否则(else),我们执行另一个语句块(称为else块)。else子语句是可选的。
例如(保存为 if.py):
number = 23
guess = int(input(‘请输入一个整数:’)) #等待输入整数
if guess == number:
print('恭喜,你猜对了。') # 新块从这里开始
print('(但你没有获得任何奖品!)') # 新块在这里结束
elif guess < number:
print('不对,你猜的有点儿小') # 另一个块
else:
print('不对,你猜的有点大')
print('完成')
# if语句执行完后,最后的语句总是被执行
输出可能有以下三种情况:
请输入一个整数:50
不对,你猜的有点儿大
完成
请输入一个整数:22
不对,你猜的有点儿小
完成
请输入一个整数:23
恭喜,你猜对了。
(但你没有获得任何奖品!)
完成
在这个程序中,我们获取来自用户的猜测,并检查这个数是否是我们设定的数。我们给变量number设置我们想要的任何整数,比如 23。然后,我们使用input() 函数获取用户的猜的数。函数是可重用的程序块。我们在本章后面几节中会介绍关于它们的更多东西。
我们给内置的input 函数提供一个字符串,该函数将其打印到屏幕上并等待用户输入。一旦我们输入一些东西并按下enter键,input()函数把我们的输入作为一个字符串返回。然后,我们使用int将这个字符串转换为整数,然后将其存储在变量guess中。实际上,int 是一个类,但现在所有你需要知道的是,您可以使用它来将一个字符串转变为一个整数(假设文本中的字符串包含一个有效的整数)。
接下来,我们比较用户猜的数和我们选择的数,如果他们相等,我们打印一条成功的消息。注意,我们使用缩进级别告诉Python语句属于哪个块。这就是为什么缩进P在ython中是如此重要。我希望你坚持"一致的缩进"的规则,好吗?
注意,if语句在最后有一个冒号――我们指示Python一个语句块将跟随其后。
然后,我们检查猜的数是否小于这个数字,如果是,我们通知用户,他们猜的数必须比那个数稍高。我们这里使用的是“elif”子句,实际上将两个相关的 if else-if else语句组合为一个语句if-elif-else,这使程序更简单且减少所需要的缩进。
elif和else语句也必须在逻辑行结束时有一个冒号,后跟相应的语句块(当然要通过适当的缩进)。
你可以在if语句的if块中有另一个if语句――这称为if语句嵌套。
记住,elif 和else部分是可选的。一个最小的有效的if语句是: python if True: print(是的,它为真)
在Python执行完成完整的if语句以及相关的elif和else子句,它移动到if包含语句的块中下一个语句块。在本例中,它是主要的块(程序开始执行的地方),接下来的语句是 print(完成)。在这之后,Python将看到程序的结尾,并简单的完成。
尽管这是一个非常简单的程序,但你应该注意,我已经指出很多东西。所有这些都是相当的直截了当(对那些有c/c++背景的人是惊人的简单)。最初,你需要意识到所有这些事情,但经过一些练习,对它们你将感到舒服,自然将是你所有的感觉。
关于Python中的for循环控制语句
#第一个:求50 - 100 之间的质数
import math
for i in range(50, 100 + 1):
for j in range(2, int(math.sqrt(i)) + 1):
if i % j == 0:
break
else:
print i
#第二个:把else的位置与if处于同一缩进。
import math
for i in range(50, 100 + 1):
for j in range(2, int(math.sqrt(i)) + 1):
if i % j == 0:
break
else:
print i
#第三个:在else后加一个break语句。
import math
for i in range(50, 100 + 1):
for j in range(2, int(math.sqrt(i)) + 1):
if i % j == 0:
break
else:
print i
break
###idea###
for语句是python中的循环控制语句。可用来遍历某一对象,还具有一个附带的可选的else块,主要用于处理for语句中包含的break语句。
如果for循环未被break终止,则执行else块中的语句。
break 在需要时终止for循环
continue 跳过位于其后的语句,开始下一轮循环。
for语句的格式如下:
>>>for <> in <对象集合>:
... if <条件>:
... break
... if <条件>:
... continue
... <其他语句>
...else:
... <>
...
#关于第一个程序
在这里,我解释一下为何导入math模块:导入math模块就是为了开方。
如果导入了math模块,然后对 i 进行开方,可以减少运算次数。
求一个数是否质数。只需对它进行这样的运算:
将这个数n,循环与 2 到这个n的开平方进行相除
如果这个区间内的所有整数不能整除n,则n为质数。
这样,就节省了运算 ‘大于n的开平方小于n’ 之间这段运算的时间。
第二,我解释一下那‘+1’:
int(math.sqrt(i)) 输出的是比i的开平方小的最大整数。
比如说:math.sqrt(51)结果比7大一点,而int(math.sqrt(51)) 输出的是7
而且在range(m, n)这里,range()函数产生的是一个从 m至n-1的整数列表,因而需要‘+1’,使运算完整。
顺便提一下range()函数。
range([start,] stop [, step])
# start 可选参数,起始数
#stop 终止数,如果 range 只有一个参数x,则产生一个包含0 至 x-1 的整数列表
#step 可选参数,步长
#第二个程序
else那行不对,如果else放在那个地方的话,一旦有某个数遇到不能整除自己的数,就会输出i,直道找到一个整除自己等于0的数。那样就会连续输出这个数。
例如:i = 77,他不是质数,但是也会连续输出5次77,懂不?
只不过,只是自己不明白当else与if位于同一缩进的话,它是怎样运行的。
你解释得很详细,用‘茅塞顿开'来形容一点都不过分。
而且,我必觉得画图是理解循环一个非常好的办法。
Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:
while判断条件:
执行语句……
执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。
当判断条件假false时,循环结束。
执行流程图如下:
实例:
#!/usr/bin/python
count =0
while(count <9):
print'The count is:', count
count = count +1
print"Good bye!"
以上代码执行输出结果:
The count is:0
The count is:1
The count is:2
The count is:3
The count is:4
The count is:5
The count is:6
The count is:7
The count is:8
Good bye!
while 语句时还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于退出循环,此外"判断条件"还可以是个常值,表示循环必定成立,具体用法如下:
# continue 和 break 用法
i =1
while i <10:
i +=1
if i%2>0: # 非双数时跳过输出
continue
print i # 输出双数2、4、6、8、10
i =1
while1: # 循环条件为1必定成立
print i # 输出1~10
i +=1
if i >10: # 当i大于10时跳出循环
break
如果条件判断语句永远为 true,循环将会无限的执行下去,如下实例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
var=1
whilevar==1: # 该条件永远为true,循环将无限执行下去
num = raw_input("Enter a number :")
print"You entered: ", num
print"Good bye!"
以上实例输出结果:
Enter a number :20
You entered: 20
Enter a number :29
You entered: 29
Enter a number :3
You entered: 3
Enter a number between :Traceback(most recent call last):
File"test.py", line 5,in<module>
num = raw_input("Enter a number :")
KeyboardInterrupt
注意:以上的无限循环你可以使用 CTRL+C 来中断循环。
在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。
#!/usr/bin/python
count =0
while count <5:
print count," is less than 5"
count = count +1
else:
print count," is not less than 5"
以上实例输出结果为:
0is less than 5
1is less than 5
2is less than 5
3is less than 5
4is less than 5
5isnot less than 5
类似if语句的语法,如果你的while循环体中只有一条语句,你可以将该语句与while写在同一行中,如下所示:
#!/usr/bin/python
flag =1
while(flag):print'Given flag is really true!'
print"Good bye!"
注意:以上的无限循环你可以使用 CTRL+C 来中断循环。