专栏首页叶子陪你玩编程【python入门系类课程 第四课 循环的威力】

【python入门系类课程 第四课 循环的威力】

前言

本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要具备基本的电脑操作能力,准备一个已安装python环境的电脑。如果觉得好可以分享转发,有问题的地方也欢迎指出,在此先行谢过。

先看一个例子:

打印10个hello world

不用循环:

使用循环

通过对比,我们可以看出明显第二个方法比较快捷方便和高效,并且数量越多越能体现出优势。

循环的意义与作用:循环就是 重复做一件事情。如果一件事情都是重复的工作,那么就可以用循环。

下面来解释一下python中的循环该怎样使用。

格式:

先需要写一行代码

for i in range(10):

这里的i是叫做循环变量,名字不是固定的,写成j,n都是可以的;range里面的内容就是循环的次数,最后加一个冒号;其它的都是固定的。

接下来需要另起一行,缩进把循环的内容放到for循环里面。

for i in range(10):
    print('hello world')

效果图:

深入理解循环变量和range

效果图:

解释:循环变量名字刚才说了是可以随意取的,i 和 j 的效果是一样的。那这里print的结果为什么是从0到4呢?

这里先来说说 Python中range()函数的用法:

函数原型:range(start, end, scan):

参数含义:

start:计数从start开始。默认是从0开始。例如range(5)等价于range(0, 5);

end:技术到end结束,但不包括end.例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5

scan:每次跳跃的间距,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

效果图:

绘制多边形

现在了解了python的for循环后,哪能用来干什么用呢?

绘制有规律的几何图形是最好不过的。

绘制三角形:

代码:

import turtle
pen = turtle.Pen()
for i in range(3):
    pen.forward(100)
    pen.left(120)
turtle.done()

效果图:

绘制正方形:

代码:

import turtle
pen = turtle.Pen()
for i in range(4):
    pen.forward(100)
    pen.left(90)
turtle.done()

效果图:

对比代码:

拓展:绘制任意的多边形:

前面都没问题,最后好像就出问题了,因为随着边数越来越多,这个图形就越来越大?

怎样解决这个问题呢?

第一种:自己输入长度:

代码:

import turtle
n_str = input("绘制几边形呢?")
n_int = int(n_str)# 把字符类型数字 变成 数字类型数字
l_str = input("边长多长呢?")
l_int = int(l_str)# 把字符类型数字 变成 数字类型数字
pen = turtle.Pen()
for i in range(n_int):
    pen.forward(l_int)
    pen.left(360/n_int)
turtle.done()

效果图:

第二种:限制周长为一个固定数字

代码:

import turtle
n_str = input("绘制几边形呢?")
n_int = int(n_str)# 把字符类型数字 变成 数字类型数字
l_int = 400
pen = turtle.Pen()
for i in range(n_int):
    pen.forward(l_int/n_int)
    pen.left(360/n_int)
turtle.done()

效果图:

本文分享自微信公众号 - 叶子陪你玩编程(gh_cd062460d25e),作者:青叶子

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-12-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python图形用户界面(一):创建第一个GUI图形用户界面

    本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要具备基本的电脑操作能力,准备一个已安装python环境的电脑。如果觉得好可以分享转发,有问题的地...

    用户7054460
  • 【python入门系类课程 第三课 神奇的画笔】

    本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要具备基本的电脑操作能力,准备一个已安装python环境的电脑。如果觉得好可以分享转发,有问题的地...

    用户7054460
  • python图像处理-添加文字

    本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要具备基本的电脑操作能力,准备一个已安装python环境的电脑。如果觉得好可以分享转发,有问题的地...

    用户7054460
  • 1365 浴火银河星际跳跃

    1365 浴火银河星际跳跃 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 小...

    attack
  • 洛谷P3808 【模板】AC自动机(简单版)

    subtask1[50pts]:∑length(模式串)<=10^6,length(文本串)<=10^6,n=1;

    attack
  • Codeforces Round #542 [Alex Lopashev Thanks-Round] (Div. 2) C. Connect(bfs)

    题目链接:http://codeforces.com/contest/1130/problem/C

    Ch_Zaqdt
  • 数字问题-LeetCode 462、463、473、474、475、476、477、482(二分)

    LeetCode # 462 463 473 474 475 476 477 482

    算法工程师之路
  • 【算法与数据结构专场】BitMap算法介绍

    假如给你20亿个非负数的int型整数,然后再给你一个非负数的int型整数 t ,让你判断t是否存在于这20亿数中,你会怎么做呢?

    帅地
  • LeetCode 215. Kth Largest Element in an Array(排序)

    题解:我们当然可以排序好了,之后,选择第K大的数字。但是这样做一点技术含量也没有。

    ShenduCC
  • leetcode 37. Sudoku Solver 36. Valid Sudoku 数独问题

    三星机试也考了类似的题目,只不过是要针对给出的数独修改其中三个错误数字,总过10个测试用例只过了3个与世界500强无缘了

    用户1539362

扫码关注云+社区

领取腾讯云代金券