from sys import argv
char = argv[1]
n = int(argv [2])
for i in range(0, n):
if i == 0 or n - 1:
for j in range(0, n):
char += "n"
print char * n
else:
for j in range(0, n):
if j == 0 or j = n-1:
char += "n"
else:
char += "/n"
回答
abccd's answer应该很好地工作。但是,如果你想知道为什么你的代码是不工作:
if条件
if i == 0 or n - 1
将成为所有n>1
如此。可能你想写if i == 0 or i == n - 1
你并不需要在
if i == 0 or i == n - 1
内的for j...
循环。执行print char * n
n次打印char
。该
if j == 0 or j = n-1:
再次是不正确的。j = n-1
部分完成作业而不是比较。要打印if-else中的字符或空格,您可以使用
sys.stdout.write
。
最终的代码可能看起来像:
from sys import argv
import sys
char = argv[1]
n = int(argv [2])
for i in range(0, n):
if i == 0 or i == n - 1:
print char * n
else:
for j in range(0, n):
if j == 0 or j == n-1:
sys.stdout.write(char)
else:
sys.stdout.write(' ')
sys.stdout.write("\n")
而像这样
$ python script.py q 5
qqqqq
q q
q q
q q
qqqqq
这实际上现在正在工作,这是我打算在我的命令提示符屏幕上看到的。我只想问一下“sys.stdout.write”是做什么的? –
@AlgerAranda,我在这里使用'sys.stdout.write'的原因是它只是将给定的字符打印到控制台,而(与'print'相反)不会添加换行符。您可能想要查看详细信息:https://stackoverflow.com/a/3263763/4045754 – yeniv
打印回字型我想你可以做这样的事情:
char = 'n'
n = 10
# char = argv[1]
# n = int(argv [2])
print n*char
for i in range(n-2):
print (' '*(n-2)).center(n, char)
print n*char
# output: a 10 x 10 "square" of n
nnnnnnnnnn
n n
n n
n n
n n
n n
n n
n n
n n
nnnnnnnnnn
- 1. 我想从python的url用户输入
- 2. 的Python用户输入
- 3. 用户输入的Python龟
- 4. 如何从用户输入python
- 5. 从用户输入
- 6. 从用户输入
- 7. 从用户输入
- 8. python - 定时用户输入
- 9. Python-多用户输入
- 10. Python用户输入平均
- 11. Python用户输入重播
- 12. 扫描用户输入python
- 13. Python - 读写用户输入
- 14. 用户输入Python 2.7
- 15. Python用户输入等式
- 16. 检查用户输入python
- 17. Python 3.4用户输入
- 18. Python用户输入棋盘
- 19. 从用户输入的值
- 20. 用于Python的用户输入循环
- 21. 用Python MySQLdb的用户输入日期
- 22. 用于用户输入的python库
- 23. 如何使用Python中的输入框从用户处获取输入?
- 24. 将用户输入写入文件python
- 25. 使用Python输入用户输入的问题
- 26. 删除用户输入的Python
- 27. 获取Python用户的按键输入
- 28. 用户输入的Python安全限制
- 29. Python的检查用户输入
- 30. Python 3.5中GUI的用户输入
什么是你的问题的工作? – Ray
请阅读[问]。 – boardrider