惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
The GitHub Blog
The GitHub Blog
小众软件
小众软件
美团技术团队
博客园 - 司徒正美
G
Google Developers Blog
Blog — PlanetScale
Blog — PlanetScale
Hugging Face - Blog
Hugging Face - Blog
博客园_首页
大猫的无限游戏
大猫的无限游戏
罗磊的独立博客
Recent Announcements
Recent Announcements
酷 壳 – CoolShell
酷 壳 – CoolShell
D
Docker
J
Java Code Geeks
Last Week in AI
Last Week in AI
V
Visual Studio Blog
Microsoft Azure Blog
Microsoft Azure Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Proofpoint News Feed
V
V2EX
C
Check Point Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
MyScale Blog
MyScale Blog

博客园 - dosboy

Python趣味入门14:类的继承 Python趣味入门13:类中的各种变量 Python趣味入门12:初遇类与实例 Python趣味入门11:函数作为参数以及匿名函数 Python趣味入门10:推倒繁琐化烦为简的推导式 Python趣味入门9:函数是你走过的套路,详解函数、调用、参数及返回值 买我的《Python青少年趣味编程》给寒假爱编程的小朋友一点温暖。 Python趣味入门8:集合变量-列表、集合、元组、字典 Python趣味入门7:循环与条件的爱恨情仇 如何使用Javascript开发sliding-nav带滑动条效果的导航插件? Python趣味入门5:循环语句while Python趣味入门4:选择往往是最重要的-条件语句 Python趣味入门3:变量、字串输入与输出 MacOs安装python3的mysqlclient组件支持django运行 Python入门的三大问题和三大谎言 Python趣味入门02: 妥妥地安装配置Python(Windows版) 轻松搞懂Python递归函数的原理与应用 Python趣味入门01:你真的了解Python么? Python魔术世界 1 如何使用Visual Studio在WIN10中一键安装Python3入门编程环境并测试Django
Python趣味入门6:能计数的循环语句for
dosboy · 2020-09-13 · via 博客园 - dosboy

上一篇讲了while语句,朋友们是否已经摸到循环的大门了,其实在实际当中for循环远比while循环更加常用。由于涉及集合类型,咱们先从数列开始。

1、range数列

在数学上数列表达是一组有顺序的数字,在Python里可以很容易使用range()函数(并不是函数其实是类)生成一组整数数列,用法如下:

说明:上述代码将会生成从“开始”(默认0)到“结束”(不包括)的整数数列,并且以“步长”(默认1)为间隔。注意range()返回的,其实是range类的实例,因此你直接print()显示的话,只能显示出range本身,结果是看不出来的,如下代码生成0,1数列。

上面在提示符后输入语句后,发现返回的结果还是range(0,2)本身,只是补齐了默认参数,并没有什么结果。

找开IDLE我们做几个小实验:

在>>>提示符下输入range(10),生成0-9数列:

>>> list(range(10)) 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
>>> 

  说明:代码中我们使用了list()函数,此函数用来把range()数列转换成"列表" 这个类型,否则看不到数列的结果。

2、for 循环

for循环也被称为枚举循环,语法如下:

for 变量 in 集合:     
    子语句块
主语句

在这里需要对上述的“变量”进行说明,for 后跟的变量由程序员自由命名,在循环体内使用的时候,变量由for语句在每次循环时自动赋值为集合中的单个元素。下面程序可以计算1-100的累加:

 
result = 0 #结果变量:保存每一步的计算结果 
for n in range(1,101):      
    result += n #把计算结果累加进结果变量 
print(result) 

3、小任务

传说靖安司查出了狼卫的秘密基地在一个10层金字塔里,为完成消灭恐怖分子的任务要求画出十层金字塔的样子。

 

分析过程

上述金字塔可以分成两个部分,左半边(不包括中间列)为N部分。 重点分析N部分每行星号个数的变化,第0行为 0 个,行号对应从上到下为 0~9 的顺序数列,如果设 N部分星号的数量为变量n ,可以得出金字塔每一行星号的总数量公式:2*n +1。
再次分析N部分的空格变化,第n行星号前空格的个数变化规律如下,第 0 行有 9 个空格,得出自上而下空格数量依次是 9,8,7,...,0,得出空格数量公式为9-n 。

此外,字符串的乘法运算可以进行重复,'0' * 8 就表示 '00000000'

根据上面的分析你可以写出程序了么,如下?

for n in range(10): 
    print(' ' * (9-n) + '*' * (2*n+1))