Python if else for while 语句控制 [整理]


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位于同一缩进的话,它是怎样运行的。
你解释得很详细,用‘茅塞顿开'来形容一点都不过分。
而且,我必觉得画图是理解循环一个非常好的办法。

评论关闭