for looper in [1, 2, 3, 4]: print("hello")
1) 每次循环开始,会依次把列表中的数按顺序赋值给looper,第一次looper为1,第二次为2,第三次为3,第四次为4函数
2) 每赋一次值,就会把下面指令块的全部工做执行一遍,这个指令块也叫循环体oop
3) 每次执行完后,变量looper会赋上列表中下一个值,直到赋完为止spa
1)range(1, 5)表示的为列表[1, 2, 3, 4],右边的5表示边界,不是具体的值code
2)range一般咱们写成range(0, 4), 表示列表[0,1, 2, 3],这也是计算机一般表示数的方法,从0这个具体的数开始,到边界4结束(不包括边界4)一共有4个数orm
3) range简化版,range(4)即表示range(0, 4)blog
print("{},{}".format(1, 2))
控制占多少个字符的:2表示占用2个字符的位置字符串
好比input
print("{:1},{:2},{:3}".format(1, 2, 3))
分别表示占用1个字符,2个字符,3个字符for循环
********form
* *
* *
********
方法:
打印出4行:
for i in range(4): print("*")
效果以下图:
* * *
*
打印出一行中的8列:
text = "" for j in range(8): text += "*" print(text)
效果以下图:
********
将打印行与打印列的合并起来:
for i in range(4): text = "" for j in range(8): text += "*" print(text)
打印出来的效果以下图:
********
********
********
********
观察步骤3与最终实现的差距,发如今for i in range中第0行和第3行是打印所有的*,第一行和第2行中for j in range的第0列和第7列打印,修改以下:
for i in range(4): text = "" for j in range(8): if i == 0 or i== 3: text += "*" else: if j == 0 or j==7: text += "*" print(text)
效果以下:
******** ** ** ********
观察步骤4发现,之因此把第7列的打到了第1列,是由于中间有空格没有考虑,即若是没有打印*号时,需打印空格,修改以下:
for i in range(4): text = "" for j in range(8): if i == 0 or i== 3: text += "*" else: if j == 0 or j==7: text += "*" else: text += " " print(text)
成功,效果以下:
******** * * * * ********
拓展,将常数4行8列变成变量:而后最后一行与最后一列的判断须要用行和列减1来替换,代码以下:
row = 4 col = 8 for i in range(row): text = "" for j in range(col): if i == 0 or i== row-1: text += "*" else: if j == 0 or j==col-1: text += "*" else: text += " " print(text)
拓展,将变量经过输入完成
row = int(input("请输入长方形的行数:")) col = int(input("请输入长方形的列数:")) for i in range(row): text = "" for j in range(col): if i == 0 or i== row-1: text += "*" else: if j == 0 or j==col-1: text += "*" else: text += " " print(text)
最终效果图:
请输入长方形的行数:8 请输入长方形的列数:16 **************** * * * * * * * * * * * * ****************
*
***
*****
*******
最后一行是7个*,有4行,所以可仿照前面打印出4行7列的图形出来
for i in range(4): text = "" for j in range(7): text += "*" print(text)
效果以下:
******* ******* ******* *******
考虑要求的图形:在咱们的for i in range(4)中
第0行为1个*,1 + 0 * 2 = 1
第1行为3个*,1 + 1 * 2 = 3
第2行为5个*,1 + 2 * 2 = 5
第3行为7个*,1 + 3 * 2 = 7
观察发现*的个数与行存在必定的关系,看起来像是这样
第0行,1 + 0 * 2 = 1
第1行,1 + 1 * 2 = 3
第2行,1 + 2 * 2 = 5
第3行,1 + 3 * 2 = 7
即每行的*数=1 + 行数 * 2:(针对range(4)行数是从0开始)
修改代码,将 for j in range(7)即每次打印7个*改为每次打印 1 + 行数 *2
具体代码以下:
for i in range(4): text = "" for j in range(1 + i*2): text += "*" print(text)
打印效果:
* *** ***** *******
步骤三:将打印的行数换成变量,并由用户输入
row = int(input("请输入打印直角三角形的高度:")) for i in range(row): text = "" for j in range(1 + i*2): text += "*" print(text)
效果以下:
请输入打印直角三角形的高度:8 * *** ***** ******* ********* *********** ************* ***************
1*1 1*2 1*3
2*1 2*2 2*3
3*1 3*2 3*3
解法:
text = "" for j in range(1, 3+1): text += "{}*{}".format(1,j) print(text)
效果:
1*11*21*3
修正一下:
text = "" for j in range(1, 3+1): text += "{}*{} ".format(1,j) print(text)
再看效果
1*1 1*2 1*3
for i in range(1, 3+1): text = "" for j in range(1, 3+1): text += "{}*{} ".format(1,j) print(text)
效果:
1*1 1*2 1*3 1*1 1*2 1*3 1*1 1*2 1*3
for i in range(1, 3+1): text = "" for j in range(1, 3+1): text += "{}*{} ".format(i,j) print(text)
效果:
1*1 1*2 1*3 2*1 2*2 2*3 3*1 3*2 3*3
1*1
2*1 2*2
3*1 3*2 3*3
观察,第一行text加一次,第二行text加两次,第三行text加三次,看起来加的次数和行数i是相等的
for i in range(1, 3+1): text = "" for j in range(1, i+1): text += "{}*{} ".format(i,j) print(text)
效果:
1*1 2*1 2*2 3*1 3*2 3*3
for i in range(1, 3+1): text = "" for j in range(1, i+1): text += "{}*{}={} ".format(i,j,i*j) print(text)
begin = 3 end = 9 for i in range(begin, end+1): text = "" for j in range(begin, i+1): text += "{}*{}={} ".format(i,j,i*j) print(text)
效果:
3*3=9 4*3=12 4*4=16 5*3=15 5*4=20 5*5=25 6*3=18 6*4=24 6*5=30 6*6=36 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
begin = int(input("请输入乘法表第一个数:")) end = int(input("请输入乘法表第二个数:")) for i in range(begin, end+1): text = "" for j in range(begin, i+1): text += "{}*{}={} ".format(i,j,i*j) print(text)
效果:基本符合要求,能够根据用户输入打印出任意的乘法表,不过发现部分数据没有对齐,修改一下,使得先知足九九乘法表是对齐的
请输入乘法表第一个数:2
请输入乘法表第二个数:5
2*2=4
3*2=6 3*3=9
4*2=8 4*3=12 4*4=16
5*2=10 5*3=15 5*4=20 5*5=25
前面代码修改成:
begin = int(input("请输入乘法表第一个数:")) end = int(input("请输入乘法表第二个数:")) for i in range(begin, end+1): text = "" for j in range(begin, i+1): text += "{}*{}={:2} ".format(i,j,i*j) print(text)
效果以下:
请输入乘法表第一个数:2 请输入乘法表第二个数:5 2*2= 4 3*2= 6 3*3= 9 4*2= 8 4*3=12 4*4=16 5*2=10 5*3=15 5*4=20 5*5=25