设为首页 收藏本站
查看: 643|回复: 0

[经验分享] Python if else for while 语句控制 【整理】

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-12-9 08:44:32 | 显示全部楼层 |阅读模式
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位于同一缩进的话,它是怎样运行的。
你解释得很详细,用‘茅塞顿开'来形容一点都不过分。
而且,我必觉得画图是理解循环一个非常好的办法。


wKioL1ZmzqixAGG9AABw1RhumB0220.png








Python While循环语句

Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:

while判断条件:

    执行语句……

执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。

当判断条件假false时,循环结束。

执行流程图如下:

wKiom1ZmzlDRIQZLAAB9-2tO6ms592.png


实例:

#!/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 来中断循环。


循环使用 else 语句

在 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 来中断循环。








运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-148543-1-1.html 上篇帖子: Python 多进程开发与多线程开发 下篇帖子: python tkinter MD5加密
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表