python基础|循环流程控制if,while和for

循环控制

  在python程序运行时是自上而下顺序的运行,就好比说:把大象装进冰箱里需要几步。事件1打开冰箱门,事件2把大象塞进去,事件3把冰箱门关上。就完成了把大象方静冰箱的操作。python程序也是如此,一步一步运行。但是如果你完成了事件1,突然有人喊你,让你做另一件事。怎办呢?我们应该判断一下,是继续装大象呢还是区做其他事情?这就是我们程序上的中断的了,也就是说在事件2的时候我们被打断了。在python中又是怎样实现的呢?    

1 循环控制之if

  python中的有两件事情A,B。做完了事情就可以做事件3。

# 事件1 事件A与事件B,事件3
a = input('事件1:请输入要做事件A or B')
if a == 'A':
    print('做事情A:做其他事情')
else:
    print('做事情B:装大象')
print('事件3:继续向下执行')
...

在上面的例子,如果我们不去做其他事情,就继续装大象,这就是if...else的搭配,不是A,就是B。但是不管我们是装大象还是做其他事情,做完事情后仍然继续做事件3。如果其他事情是装老虎,装猴子,怎么办?我们就需要if的另一种用法,if...elif...else.

# 事件1 事件A与事件B,C,D,事件3
a = input('事件1:请输入要做事件A or B')
if a == 'A':
    print('做事情A:做其他事情')
elif a == 'C':
    print('装老虎')
elif a == 'D':
    print('装猴子')
else:
    print('做事情B:装大象')
print('事件3:继续向下执行')

  在if语句使用时,读者应该看出if的使用语法:if+判断条件。这个判断条件就是选择的依据。条件成立即为真,否者为假(这个读者可以思考一下前面所讲的布尔值)。条件为真就执行,此条件下的指令块。

  在这里要讲一下,python对于格式比较讲究的,主程序靠左对齐,每个控制下的指令块为为子程序,与主程序相比退后4个空格,同级对齐,以此类推。

2 循环控制while

  while的使用语法和类似:while + 条件语句:但是if和while相比,while才是算是一个循环指令。当条件指令为真且不变,那么while下的子程序将会无限执行下去。在写程序时这种情况最好不出现,对计算机的CPU来说是一种‘伤害’,计算机不停计算,硬盘不停存储数据,读者朋友,你可以在你电脑上试试。此外,break指令,continue指令的使用,while...else...也可使配合使用。

# while语句都使用
while True:
    print('死循环‘)
死循环
死循环
死循环
死循环
死循环
。。。
while + break  #将while那一层循环结束
while + continue #将continue所在循环,本次结束,开始下一次
while + else  # while循环正常结束是执行else

 

 3 循环控制for

  for语句也是一个循环语句,但是for的语法和前面两种有些不同。for+(变量名[i/j/itmer])+in+对象。这个对象可以是字符串,列表,字典,元组,集合等。

  和while,if还有一点不同的是它不需要判断条件,for也可以与else配合使用。

a = '1234546789'
# 字符串遍历
for i in a:
    print(i, end='  ')
1  2  3  4  5  4  6  7  8  9  
# 列表遍历list()
for j in list(a):
    print(j, end='  ')
1  2  3  4  5  4  6  7  8  9
# # 字典遍历
a1 = {'a': 1, 'b': 2, 'c': 3}
for itmer in a1:
    print(itmer, end=' ')    #字典遍历只把键送出来。
a b c                 

知识扩展

  len(),可以计算容器内元素个数。

a = '1234546789'
# 字符串长度/个数
print(len(a))
10
# 列表元素个数/长度
print(len(list(a)))
10

  range()

  在python2中也有range,和xrange(),和python3有什么区别吗?我们来看

  在python2中我们使用range(),程序会把数据立即提取出来,xrange()和python3中一样。

  

小试牛刀 

户登录次数
1, 用户登录三次失败后直接结束程序
2, 用户尝试三次错误之后提示用户是否继续尝试,如果用户输入'y'那么再给用户三次机会,输入'q'直接退出
# 1, 用户登录三次失败后直接结束程序
from_db_ureName = 'meKing'
from_db_password = 123
sign = True
a = 0   # 记录错误次数
while sign:
    ureName = input('请输入用户名:').strip()
    password = int(input('请输入密码:').strip())
    if ureName == from_db_ureName and password == from_db_password:
        print('%s,您已成功登录'%ureName)
        sign = False
    else:
        a += 1      # 没错误一次,加一
        if a == 3:          # 如果错误三次,将退出程序
            sign = False
            print('非法输入')
        continue    # 结束本次循环


# 2, 用户尝试三次错误之后提示用户是否继续尝试,如果用户输入'y'那么再给用户三次机会,输#入'q'直接退出
from_db_ureName = 'meKing'
from_db_password = 123
sign = True     # 程序对出标志位
a = 0       # 错误计数变量
while sign:
    ureName = input('请输入用户名:').strip()      # strip(),清除字符串两边空格
    password = int(input('请输入密码:').strip())
    if ureName == from_db_ureName and password == from_db_password:
        sign = False
        print('%s,您已经成功登录')
    else:
        a += 1
        if a == 3:      # 判断是否错误有三次
            cmd = input('您已经错误三次,继续输入"Y",退出输入"q":').strip()
            if cmd == 'Y':      # 判断是否再次输入
                a = 0           # 错误计数清零
            elif cmd == 'q':    # 判断是否退出
                sign = False
        continue
参考程序
原文地址:https://www.cnblogs.com/huaiXin/p/11122021.html