蓝色为代码,其余为注释
方法一:
''' 99乘法表每一行乘号后面一位数都是不变的 如: 1*X 2*X 3*X 4*X 5*X X 肯定是需要在一行打印循环中是不变的 而外层for循环在 一行打印循环中是不会变的 所以用外层for循环的变量值来赋值 X ''' for i in range(1,10): ''' 在每一行打印的循环中 i 是不变的 所以 i 要在打印中存在于乘号后面的那一位数 ''' for j in range(1,i + 1): ''' 这行代码决定了每一行需要一次乘几次 每一行乘到最后的时候一定是(X * X) 乘号前面的数必须要 1 到 X 轮流取一遍跟 X 相乘 即 乘号前面的数必须要 1 到 X 轮流取一遍跟 i 相乘 ''' print('%s * %s = %s' %(i,j,i*j),end= ' ') ''' 乘号前面对应的是一直增长的 j 乘号后面对应的是不变的 i 结果就是两者的积 这一行到达最大取值就会停止循环,进行上一缩进级的循环 这一行每次的最大取值都会伴随着 i 的增加而增加 1 在打完每一行的内容之后都不会换行 需要在第一层循环的最后给一个换行操作 然后再回去循环第一个for循环 ''' print() 方法二: for i in range(1, 10):
str1 = "" '''
一个内容为空的字符串 拼接任何另外有内容的字符串最终结果都是等于另外的字符串的 二层循环打完一行之后要把被拼接的字符串清零 不然就会接着上一次循环完之后 产生的上一整行内容的字符串后面进行拼接
''' for n in range(1, i+1): # 这样设置range范围之后,第二个for循环的次数就相当于每一行需要乘的次数 str1 += "%s*%s=%s " % (n, i, n*i) ''' 上一行代码其实就是 str1 = str1 + "%s*%s=%s " % (n, i, n*i) 意为 在字符串 str1 后拼接字符串 ("%s*%s=%s "(n, i, n*i) 字符串("%s*%s=%s "(n, i, n*i)的内容随着i,n而改变 而i,n随着循环而变 每次第二层循环时n都会变,n循环完一整次之后i才会变 ''' # 拼接字符串的语法是:'str1'+'str2' # 每次循环都会在上一次循环的结果上再次拼接打印形成一个很长的字符串 ''' 第二个for循环中 乘后i都是不变的,乘前j的变化次数也是按找规定的range范围次数定的 而range的范围又是按照规定根据乘后i(行数)来定的 这样能够恰到好处的打印完一行的所有内容 ''' print(str1)