python课后题求助
第四讲的课后题,打印一个九九乘法表,>>> for i in range(1, 10):
... for j in range(1, i+1):
... print(i, "x", j, "=", i * j, end=' ')
... print("\n")
想问问各位大佬为什么打印出来的九九乘法表会自动换行,而不是一直横向或纵向排列的。
还有就是最后两行为什么都需要print()函数,而不能用一个包含
第一个print是不换行输出
第二个print专门负责换行 本帖最后由 jackz007 于 2022-10-21 07:43 编辑
for i in range(1, 10):
print(1 , "x" , i , "=%2d" %i , sep = '' , end = '')
for j in range(2 , i + 1):
print('' , j , "x" , i , "=%2d" % (i * j) , sep = '' , end = '')
print() # 为本行输出画上句号,空 print() 足矣,加 '\n' 属于画蛇添足,反而影响美观。
运行实况:
>>> for i in range(1, 10):
print(1 , "x" , i , "=%2d" % i, sep = '' , end = '')
for j in range(2 , i + 1):
print('' , j , "x" , i , "=%2d" % (i * j) , sep = '' , end = '')
print()
1x1= 1
1x2= 22x2= 4
1x3= 32x3= 63x3= 9
1x4= 42x4= 83x4=124x4=16
1x5= 52x5=103x5=154x5=205x5=25
1x6= 62x6=123x6=184x6=245x6=306x6=36
1x7= 72x7=143x7=214x7=285x7=356x7=427x7=49
1x8= 82x8=163x8=244x8=325x8=406x8=487x8=568x8=64
1x9= 92x9=183x9=274x9=365x9=456x9=547x9=638x9=729x9=81
>>>
第3句中的 end=" " 作用:在一行打印,不换行
第4句中的 print( ) 作用:需要换行 wp231957 发表于 2022-10-20 21:40
第一个print是不换行输出
第二个print专门负责换行
那这个换行的条件是什么,就是出现什么情况才会换行
dragov 发表于 2022-10-21 09:29
第3句中的 end=" " 作用:在一行打印,不换行
第4句中的 print( ) 作用:需要换行
那这个换行需要什么条件吗,
jackz007 发表于 2022-10-20 21:53
运行实况:
"=%2d" %
请问上面那个代码是什么意思啊 本帖最后由 jackz007 于 2022-10-21 10:29 编辑
乔治爱啃脚趾 发表于 2022-10-21 10:15
"=%2d" %
请问上面那个代码是什么意思啊
"=%2d" % (i * j)
把表达式 i * j 的值以十进制整数 2 位域宽的形式注入到字符串中 %2d 的位置,2 位域宽的意思是,被注入到字符串中 i * j 的值占用 2 个字符宽度,如果 i * j 的值不足 2 位,就在其前方用 1 个空格填充。例如,如果 i * j 的值是 5,那么,注入后的字符串就是 '= 5',之所以要这么安排 2 位域宽,是因为部分乘积是 2 位数,这样,可以让它们上下对齐,比较美观。 本帖最后由 yangmiao07 于 2022-10-21 10:58 编辑
查阅https://fishc.com.cn/forum.php?mod=viewthread&tid=141463&extra=page%3D1%26filter%3Dtypeid%26typeid%3D768,可以看到:print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False),
参数end='\n':指定最后的结束符,默认是换行符('\n'),第一个print相当于我们将\n换成空格,所以就不换行了;第二个print没有修改end参数保持默认换行 第三行:逐个打j for range(1,i+1),
比如i=5 的时候,j 就是1,2,3,4,5,
然后逐个打印5x1=5不换行 继续显示 5x2=105x3=155x4=205x5=25
“x”就是乘号
“=”就是等号
end“”,end 表示不换行, “”引号里面是有空格的,也就是几个算术式之间不换行,用空格隔开
好像这样的乘法表 反着,我都是用一五得五二五一十,也就是小的数在前面,就是说1x5=52x5=10这样 乔治爱啃脚趾 发表于 2022-10-21 10:14
那这个换行需要什么条件吗,
不需要条件的
dragov 发表于 2022-10-21 17:21
不需要条件的
不是,是python,他是怎么识别出来需要换行的 乔治爱啃脚趾 发表于 2022-10-21 18:55
不是,是python,他是怎么识别出来需要换行的
python 遇到语句 print (),就会自动换行的 我想问那假如后面再加一个print(),是不是再加一个换行符 魏立选 发表于 2022-10-22 01:41
我想问那假如后面再加一个print(),是不是再加一个换行符
正确
页:
[1]