一句废话都没有的Pycharm(四):循环及流程控制

一句废话都没有的Pycharm(四):循环及流程控制

介绍

  • 1. range函数
  • 2. 循环
    • 2.1 while循环
    • 2.2 for_in循环
    • 2.3 嵌套循环
  • 3. 流程控制语句
    • 3.1 break
    • 3.2 continue
    • 3.3 多重循环中的break和continue
  • 4. else语句

1.内置函数 range

骨骼图:
在这里插入图片描述
代码:

#range函数
#第一种创建方式,默认从0开始,步长为1
r=range(10)
print(r)
print(list(r))
#第二种创建方式,默认步长为1
r=range(2,10)
print(r)
print(list(r))
#第三种创建方式
r=range(2,10,3)
print(r)
print(list(r))
#in,not in 用于判断一个数是否在range代表的序列中
print(2 in r)#True
print(8 not in r)#True

结果演示:
在这里插入图片描述

2.循环(反复做同一件事)

骨骼图:
在这里插入图片描述

2.1 while循环

语法结构

while 条件表达式
       循环体

步骤:

初始化变量
判断条件
执行循环体
改变变量

while求阶乘的代码演示:

#while循环求阶乘
a=int(input('Please input a number:'))
factorial=1;
while a>=1:
    factorial*=a
    a-=1
print(factorial)
print(10*9*8*7*6*5*4*3*2*1)#验证

结果展示:
在这里插入图片描述
练习:while求0-100之间的奇数和。

#while循环1-100之间的奇数和
a=1
sum=0
while a<=100:
    if a%2==1:
        sum+=a
    a+=1
print('1-100之间的奇数和为:',sum)

结果:
在这里插入图片描述
2.2 for_in循环

用于遍历输出,见代码。

语法结构

for 定义的变量 in 可迭代对象
    循环体

代码演示:

#for_in
#遍历字符串
for s in 'Max': #将M赋值给s打印输出,重复
    print(s)
#遍历序列
for s in range(3):
    print(s)
#不需要自变量时,用_代表,in后面为循环次数
for _ in range(3):
   print('I like Math')
#用for_in来求1-100之间的奇数和
sum=0
s=0
for s in range(1,100,2):
   sum+=s
print('1-100之间的奇数和为:',sum

结果:
在这里插入图片描述
练习:输出100到999之间的水仙花数(Armstrong number)。
水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。

代码演示:

#输出100到999之间的水仙花数
for s in range(100,1000):
    s1 = s%10#个位
    s2 = s//10%10#百位
    s3 = s//100#千位
    if s1**3+s2**3+s3**3 == s:
      print('水仙花数为:', s)

结果:
在这里插入图片描述
2.3嵌套循环

循环结构中又嵌套了另外的完整的循环结构,内层循环是外层循环的循环体。

例子:九九乘法表
代码:

#嵌套循环,例:九九乘法表
for i in range(1,10):#9行
    print(i)
    for j in range(1,i+1):#列
          print(i,'*',j,'=',i*j,end='\t')#不换行
    print()#换行

结果:
在这里插入图片描述

3. 流程控制语句

3.1 break

用于结束循环体结构,非正常结束循环。

代码演示:

#break
#输入密码,三次机会
#在for_in中
for _ in range(3):
    s=input('Pleasr input the password:')
    if s=='123':
        print('password is right')
        break
    else:
        print('password is wrong')
#在while中
a=0
while a<=3:
    s = input('Pleasr input the password:')
    if s=='123':
        print('password is right')
        break
    else:
        print('password is wrong')
    a+=1

结果:
在这里插入图片描述
3.2 continue

用于结束当前循环,进入下一循环

代码演示:

#continue
#输出1到50之间是13的倍数的数,要求使用continue
for s in range(10,50):
    if s%13!=0:
        continue
    else:
        print(s)

结果展示:
在这里插入图片描述
3.3 多重循环中的continue和break

用于控制其所在层的循环。

代码(演示一下其在双层循环的表现):

# 多重循环中的break
for i in range(1,10):
    for j in range(1,100):
        if j%2==0:
            break
        print(j)
'''结果出现9个1的解释:
   i=1,j=1,1%2!=0,输出1,i=1,j=2,2%2==0,break跳出本层循环——>
   i=2,j=1,1%2!=0,输出1,i=2,j=2,2%2==0,break跳出本层循环——>
   i=3,j=1,1%2!=0,输出1,i=3,j=2,2%2==0,break跳出本层循环——>
   ...
   i=9,j=1,1%2!=0,输出1,i=9,j=2,2%2==0,break跳出本层循环——>
   所以结果输出9个1。
'''

结果:
在这里插入图片描述
结果出现9个1的原因是:
i=1,j=1,1%2!=0,输出1,i=1,j=2,2%20,break跳出本层循环;
i=2,j=1,1%2!=0,输出1,i=2,j=2,2%2
0,break跳出本层循环;
i=3,j=1,1%2!=0,输出1,i=3,j=2,2%20,break跳出本层循环;

i=9,j=1,1%2!=0,输出1,i=9,j=2,2%2
0,break跳出本层循环
所以结果输出9个1。

4. else语句

else可以和if搭配使用,在if条件不成立的情况执行;除此之外,else还可以和while、for搭配使用,在没有碰到break的情况下执行。
代码演示:

#else
#输入密码,三次机会
#在for_in中
for _ in range(3):
    s=input('Pleasr input the password:')
    if s=='123':
        print('password is right')
        break
    else:
        print('password is wrong')
else:
    print('The number of attempts today has reached the limit ')
#在while中
a=0
while a<=3:
    s = input('Pleasr input the password:')
    if s=='123':
        print('password is right')
        break
    else:
        print('password is wrong')
    a+=1
else:
    print('The number of attempts today has reached the limit ')

结果展示:
在这里插入图片描述

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值