python循环if_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语句都使用

whileTrue: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 ina:print(i, end=' ')1 2 3 4 5 4 6 7 8 9

#列表遍历list()

for j inlist(a):print(j, end=' ')1 2 3 4 5 4 6 7 8 9

## 字典遍历

a1 = {'a': 1, 'b': 2, 'c': 3}for itmer ina1: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= 123sign=True

a= 0 #记录错误次数

whilesign:

ureName= input('请输入用户名:').strip()

password= int(input('请输入密码:').strip())if ureName == from_db_ureName and password ==from_db_password:print('%s,您已成功登录'%ureName)

sign=Falseelse:

a+= 1 #没错误一次,加一

if a == 3: #如果错误三次,将退出程序

sign =Falseprint('非法输入')continue #结束本次循环

#2, 用户尝试三次错误之后提示用户是否继续尝试,如果用户输入'y'那么再给用户三次机会,输#入'q'直接退出

from_db_ureName = 'meKing'from_db_password= 123sign= True #程序对出标志位

a = 0 #错误计数变量

whilesign:

ureName= input('请输入用户名:').strip() #strip(),清除字符串两边空格

password = int(input('请输入密码:').strip())if ureName == from_db_ureName and password ==from_db_password:

sign=Falseprint('%s,您已经成功登录')else:

a+= 1

if a == 3: #判断是否错误有三次

cmd = input('您已经错误三次,继续输入"Y",退出输入"q":').strip()if cmd == 'Y': #判断是否再次输入

a = 0 #错误计数清零

elif cmd == 'q': #判断是否退出

sign =Falsecontinue

参考程序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值