Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 第一步:
- 下载starter code,地址在 https://mcs.utm.utoronto.ca/~108s19/mini-ex/starry.py
- handout在https://mcs.utm.utoronto.ca/~108s19/mini-ex/mini-ex2.pdf
- 第二步:解释他给的那部分代码的每行的意思,解释的时候在每行后面打个空格,然后以#开头写解释就可以了,大家把中文翻译成英文就可以了
- for row in range(n): # 这是一个loop,其中row会从0开始,到n结束,但是不包括n
- for column in range(row+1): # 这也是一个loop,其中column会从0开始,到row+1结束,但是不包括row+1
- print('*', end='') # print出来一个*号,end=''的意思是,print完之后会以空string结尾,这样每一次print出来的结果就会连成一行,而不是一行一次(这里大家自己换个说法概述一下)
- print() # print出来一个空行
- 第三步,在他给的五个drawing里,选三个图形,想办法用loop把他们画出来,其实用我们上节课讲的while loop就可以了;推荐是画:
- 1、第二个(实际上就是我们上课讲的最后一道题的反过来的形式,具体怎么反过来你可以想想,注意我们上课讲的例子是从0到10,这里要换成n到0)
- 2、第三个也很简单,如果第二个会画的话,那是不是实际上就是两个while loop,来画出两个直角三角形,只不过是一正一反
- 3、第一个稍微有点难画,我们首先来分解一下这个三角形,我们这里用0来表示空格【注意,空格!=空string】,假设n是4,就是说你的图形应该有四行,如下所示
- 000*000
- 00***00
- 0*****0
- *******
- 接下来,你是不是可以知道每行的0和*分别是什么了,每行的0(空格)的个数就是(n * 2 - 1)- (第几行 * 2 - 1),*的个数就是(第几行 * 2 - 1);
- 所以说,每行的内容就是
- " " * 空格个数的一半 + "*" * 星号的个数 + " " * 空格个数的一半
- 然后你把这行内容print出来就可以了;
- 所以说,这个部分的代码结构是
- 当前的行数 = 1
- while 【当前的行数】与【n】满足某种关系时:
- print(上面讲的那个内容)
- 当前的行数 = 当前的行数 + 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement