python - Python 创建街道地址表
问题描述
对编程很陌生,对 Python 也很陌生,我在网上做不同的任务。目标是在不依赖外部库的情况下完成很多工作。
我今天无法完成的一项任务是:
给定街道名称和用户提供的编号,创建一个包含 user_provided_number 列的表并输出街道名称。然后,在同一个表中创建相同的输出,但反转街道地址。街道地址之间的空格应替换为“|”。如果街道名称太短而无法完成该行,则呈现“?” 对于每个剩余空间。
场景示例:
街道地址:Mystreet road,用户提供号码:6
预期输出:
M y s t r e
e t | r o a
d | d a o r
| t e e r t
s y M ? ? ?
到目前为止,我设法做到了以下几点:
strAddress = input("What's your street address?")
givenNumber = input("What's your favourite number from 1 to 10?")
reverseAddress = strAddress[::-1]
splitAddress = list(strAddress)
for row in range(0,int(len(strAddress)/givenNumber)):
for element in range(0,givenNumber):
print (splitAddress[element], end=' ')
print()
为什么这个“数组”(?)在每一行上打印相同的元素?假设用户提供了“4”作为他们的号码,从我编写的代码中,我期望得到这样的输出:
M y s t
r e e t
r o a
d
但是输出是:
M y s t
M y s t
M y s t
解决方案
首先你应该把你的转换givenNumber
成int()
因为input()
总是返回字符串。您也可以将整体strAddress
转换为自身和自身的反转版本,以使其更容易访问。splitAddress
这里不需要,因为您可以像本示例中的列表一样访问字符串长度和元素。在您的第一个循环中,您正在迭代len(strAddress)/givenNumber
这还不够,因为我们需要两次打印地址(使用反向版本)并且我们需要填充扩展字符,?
因此我们需要将其四舍五入,而不使用math
我们可以做的库这就像我展示的那样。最后splitAddress[element]
,您可以在此处访问地址的第元素索引,该索引0 - 6
在每次迭代中都是数字,因此我们需要考虑row
打印更多元素。
strAddress = input("What's your street address?")
givenNumber = int(input("What's your favourite number from 1 to 10?"))
strAddress += '|' + strAddress[::-1]
strAddress = strAddress.replace(' ', '|')
lines_to_print = len(strAddress)//givenNumber + (len(strAddress)%givenNumber>0)
for row in range(lines_to_print):
for element in range(givenNumber):
if row*givenNumber + element < len(strAddress):
print(strAddress[row*givenNumber + element], end=' ')
else:
print('? ', end='')
print()
输出Mystreet road
和6
M y s t r e
e t | r o a
d | d a o r
| t e e r t
s y M ? ? ?
推荐阅读
- r - R函数并传递可选参数
- html - 如何在固定像素位置设置线性渐变背景的过渡点?
- python - 如何在包含多个匹配项的字符串中合并熊猫?
- node.js - 为 Heroku 上托管的 Reactjs/nodejs 应用程序设置 react-snap 时出错
- python - 如果我使用 mysql 用户变量,python 中的 mysql 不会返回结果
- javascript - 从 Chartjs 代码外部调用数据
- keyboard - Manjaro linux compose 键给出了不正确的行为
- microsoft-graph-api - 有没有办法创建私人频道的 SharePoint 网站?
- hp-uft - 是否有通用方法来访问 UFT 中的对象
- node.js - 如何使用路由器在 nodejs 中呈现页面