python - 使用模式中的 ascii 数字打印每个字母
问题描述
在这个问题中,我想根据它所在的行在每一行中打印一个字母。它还取决于图案的大小。但是当我运行这个程序时,没有一个字母被打印出来(所需的输出是基于行的中间列中的字母);只有-
被打印出来。
我究竟做错了什么?
def print_rangoli(size):
row=2*size - 1
col=4*size - 3
for i in range(0,row):
for j in range(0,col):
if j==col/2:
print(chr(96+n-i),end='')
else:
print("-",end='')
print(" ")
if __name__ == '__main__':
n = int(input())
print_rangoli(n)
预期输出为:
--------e--------
--------d--------
--------c--------
--------b--------
--------a--------
等等。
但实际输出是:
-----------------
-----------------
-----------------
-----------------
-----------------
-----------------
-----------------
-----------------
-----------------
解决方案
在 python 中,与其他语言不同,符号 '/' 不是指整数除法。在您的情况下,变量col
是奇数。在 for 循环内部,您正在检查:if j == col / 2
。col
奇怪的是,除以 2 将是浮点数(而你永远j
不会是浮点数)。如果要进行整数除法,以便找到行中间,请尝试//
操作,即整数除法。
推荐阅读
- java - 尝试通过 Hostinger 和 Forge 1.12.2 托管 minecraft 将不允许控制台启动
- reactjs - 如何从打字稿中的锚点击事件发送参数
- azure - 列出与特定密钥保管库关联的 azure vm?
- css - React bootstrap css 接管其他组件样式并更改大小
- node.js - 如何在两个 MongoDB 数据库之间同步两个相同的集合?
- firebase - 一次 Firestore 事务中的 2 次更新
- javascript - 如何将数据从 Angular 表单发送到特定的“文件夹结构”到 Firebase?
- javascript - 带有 socket.io 的 WebRTC/nodejs 中的屏幕共享问题
- excel - 使用 Excel VBA 宏捕获
- rest-assured - 我想使用 java 放心地将嵌套的多个数组作为 json 对象发送