假设s=“*”,利用字符串的格式化方法format()输出s,分别绘制以下图形:直角三角形,等腰三角形,空心正方形,菱形,箭头,心形,Python代码
时间: 2024-10-01 18:07:09 浏览: 41
在Python中,我们可以利用字符串连接和格式化方法`format()`来创建各种形状。以下是使用`s = "*"`作为基础字符来生成不同图形的例子:
1. **直角三角形** (使用三行星号):
```python
s = "*"
print(s.center(8)) # 输出: ******
print("*" * 5)
print(s.center(8))
```
2. **等腰三角形** (上小下大):
```python
n = 4
for i in range(n):
print(" " * (n - i - 1) + s * (2 * i + 1))
```
或者更简洁版本:
```python
n = 4
print(' ' * (n // 2) + s * n)
for _ in range(1, n):
print(' ' * (n // 2 - _) + s * (2 * _ + 1))
```
3. **空心正方形** (内嵌星号):
```python
size = 3
for i in range(size):
print(' '.join([' ' * (size - 2 * i) + '*' * (2 * i + 1)]))
```
4. **菱形** (中心对齐的星号):
```python
n = 4
print(' ' * ((n * 2 - 3) // 2) + '*' * n)
for i in range(1, n):
print(' ' * ((n - i) // 2) + '*' + (' ' * (i * 2 - 1) + '*' * (n - 2 * i) + '*') * i + ' ' * ((n - i) // 2) + '*')
```
5. **箭头**: 这需要组合其他字符,这里只给出基本的提示:
```python
# 可能使用ASCII艺术,如 '< > v ^'
arrow_left = "<>"
arrow_right = ">"
arrow_up = "^"
arrow_down = "v"
```
6. **心形**: 也是ASCII艺术,比较复杂,可以使用现成的库如`shapes`:
```python
from shapes import heart
print(heart())
```
如果没有`shapes`库,可以用自定义字符串替换。
7. **心形** (简单版本,仅作示意):
```python
print("*" * 5 + "\n" + ("*" + " O " + "*") * 2 + "\n" + "*" * 5)
```
阅读全文