Python初级学习

for…else…循环

配合for/while循环语句使用
在for循环语句的后面紧接着else子句,在循环正常结束的时候(非return或者break等提前退出的情况下),else子句的逻辑就会被执行到。先来看一个例子:

def print_prime(n):
  for i in xrange(2, n):
    # found = True
    for j in xrange(2, i):
      if i % j == 0:
         # found = False 
        break
    else:
      print "{} it's a prime number".format(i)
    # if found:
         # print "{} it's a prime number".format(i)
print_prime(7)

结果:

2 it's a prime number
3 it's a prime number
5 it's a prime number

一个简单打印素数的例子,判断某个数字是否是素数的时候需要遍历比它自己小的整数,任何一个满足整除的情况则判断结束,否则打印这是一个素数的info,有了else的加持,整个例子的逻辑相当的“self-expressive”,如同伪代码一般的好理解而且相比在判断整除的时候设置标志值然后在函数的结尾处判断标志值决定是否打印数字时素数的消息,代码更简洁没有那么多要描述如何做的“过程式”准备工作。
ps: 大家可以把例子中的被注释代码运行对比下效果。

应用到此种情况的程序,本程序可以统计范围内存在的素数个数并且将这些素数打印出来。

import math
print("本程序输入指定范围内的素数")
my_num_low=int(input("请输入范围下限:"))
my_num_hig=int(input("请输入范围上限:"))
com_num_count=0         #统计出现的合数的次数
pri_num_count=0         #统计出现的素数的次数
for i in range(my_num_low,my_num_hig):   #i在范围内
    if(i>3):              #i小于3的时候直接输出是素数
        my_sqrt=int(i**0.5)			#取其开方后的值
        for m in range(2,my_sqrt+1):
            if((i%m)==0):
                com_num_count+=1
                break
        else:
            print(i,"是素数")
            pri_num_count+=1
    else:
        print(i,"是素数")
        pri_num_count+=1
print("一共有{0}个素数,{1}个合数".format(pri_num_count,com_num_count))
a=input()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值