【python】编程语言入门经典100例--12

简介:

  1 #题目:判断101-200之间有多少个素数,并输出所有素数。


代码:

1
2
3
4
5
6
7
8
9
   3  tmp  =  [n  for  in  range ( 101 , 201 )]
   4  for  in  reversed (tmp):
   5      for  in  range ( 2 ,i):
   6          if  (i % = =  0 ):
   7              tmp.remove(i)
   8              break
   9  print ( '101到200之间有%d个素数' % len (tmp))
  10  print ( '这些素数分别是:' )
  11  print  (tmp)


运行结果:

1
2
3
4
5
[root@HK code_100] # python code_12.py 
101 200 之间有 21 个素数
这些素数分别是:
[ 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 ]
[root@HK code_100] #


代码解释:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    这个代码用了一种比较繁琐的方式,不过用来练习 list 的操作还是不错的,因为牵扯到要统计素数的个数,
我觉得用 len ( list )比较合适, 思路是遍历整个 list ,发现不是素数的就从 list 中删除,最后剩下的
就是 101 200 之间的素数。
 
   3  tmp  =  [n  for  in  range ( 101 , 201 )]       #建立101到200的升序list
   4  for  in  reversed (tmp):                 #倒叙遍历tmp列表
   5      for  in  range ( 2 ,i):                #针对tmp中的每个成员,用2到(i-1)进行取余
   6          if  (i % = =  0 ):                  #如果取余等于零,说明不是素数
   7              tmp.remove(i)               #将不是素数的数字从list中删除
   8              break                       #直接跳出循环,不进行后面的验证,以节省资源
   9  print ( '101到200之间有%d个素数' % len (tmp))   #格式化输出素数的个数
  10  print ( '这些素数分别是:' )
  11  print  (tmp)                               #打印素数
  
          
     在第四行中用了倒叙遍历 list ,因为tmp.remove的特点,如果用正序是得不出期望结果的,因为remove删掉一个元素的时候,
这个元素后面的所有元素的下标都会减 1 (如果所有元素下标都不变就不会有问题),但是 for 循环的迭代是下标依次加 1 ,这样就会导致
在遍历 list 的时候有一些元素是遍历不到的,用逐步调试可以看到效果具体可以查一下remove的详细解释,这里使用倒叙是从后面开始减,
之前的下标不会用变化,这样就不会影响到最终的结果。






      本文转自snc_snc 51CTO博客,原文链接:http://blog.51cto.com/netsyscode/1745166,如需转载请自行联系原作者





相关文章
|
2天前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
【9月更文挑战第33天】本文旨在为初学者提供一个关于使用Python进行数据分析的全面概述。我们将从基本的安装和设置开始,逐步介绍数据处理、数据可视化以及机器学习的基本概念和应用。文章将通过实际代码示例来展示如何使用Python及其相关库来解决常见的数据分析问题。
|
8天前
|
Python
Python 编程入门:打造你的第一个程序
【9月更文挑战第27天】编程,就像是在数字世界里绘画。想象一下,你手中的键盘是画笔,屏幕是画布,而代码则是你的颜料。这篇文章将带你走进编程的世界,学习如何使用 Python 这门语言来创建你的第一个程序。我们将从基础的语法开始,逐步深入到条件判断和循环结构,最终完成一个简单的猜数字游戏。无论你是否有编程经验,这里的内容都将为你打开一扇新的大门。
|
8天前
|
人工智能 数据挖掘 开发者
Python编程入门:从零到英雄
【9月更文挑战第27天】本文旨在通过浅显易懂的语言,为初学者介绍Python编程的基础知识和实用技巧。我们将一起探索Python的世界,了解其语法、数据结构,并通过实际示例学习如何编写简单的Python程序。无论你是编程新手,还是希望拓展技能的开发者,这篇文章都将为你打开一扇通往Python编程世界的大门。
|
7天前
|
Python
? Python 装饰器入门:让代码更灵活和可维护
? Python 装饰器入门:让代码更灵活和可维护
12 4
|
9天前
|
存储 人工智能 数据挖掘
Python编程入门:从基础到实战
【9月更文挑战第26天】 在这篇文章中,我们将一起探索Python编程的奇妙世界。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的信息和技巧。我们将从Python的基本语法开始,然后逐步深入到更复杂的主题,如函数、类和模块。最后,我们将通过一个实际的项目来应用我们所学的知识。让我们一起开始这段Python编程之旅吧!
|
6天前
|
数据可视化 Python
使用Python进行数据可视化:从入门到精通
【8月更文挑战第60天】本文是一篇面向初学者的Python数据可视化教程,旨在帮助读者掌握如何使用Python及其强大的库(如Matplotlib和Seaborn)来创建引人入胜的数据可视化。我们将从基础开始,逐步深入,最终达到能够独立完成复杂数据可视化项目的水平。无论你的背景如何,只要你对数据可视化感兴趣,这篇文章都将为你开启一段新的学习之旅。
|
9天前
|
数据采集 人工智能 数据挖掘
Python编程入门:从基础到实战的快速指南
【9月更文挑战第25天】本文旨在为初学者提供一个简明扼要的Python编程入门指南。通过介绍Python的基本概念、语法规则以及实际案例分析,帮助读者迅速掌握Python编程的核心技能。文章将避免使用复杂的专业术语,而是采用通俗易懂的语言和直观的例子来阐述概念,确保内容的可读性和实用性。
|
7天前
|
Python
Python 装饰器入门:让代码更灵活和可维护
Python 装饰器入门:让代码更灵活和可维护
12 1
|
9天前
|
测试技术 数据库 开发者
Python作为一种谦逊的编程语言:对象自省机制的探讨
Python的自省机制是该语言的一个强大特性,为开发者提供了深入了解和操作对象的能力。它增强了Python的灵活性,使得开发者可以更加精准地控制程序的行为。然而,合理利用自省能力,避免其成为代码复杂性的来源,是每个Python开发者需要考虑的问题。通过熟练运用Python提供的自省工具和技巧,可以更好地设计和实现高效、易维护的Python应用。
14 2
|
9天前
|
设计模式 开发者 Python
Python中的装饰器:从入门到精通
【9月更文挑战第25天】本文深入浅出地介绍了Python装饰器的使用,包括其定义、语法和实际应用。通过实例演示如何利用装饰器增强函数功能,同时探讨了装饰器的高级用法如带参数的装饰器和装饰器嵌套。最后,文章强调了在设计装饰器时应避免的常见陷阱。
下一篇
无影云桌面