lzhh 发表于 2020-4-16 12:16

Python用for in 循环怎么画符号的图形

jh=int(input('要几行'))
for fz in range (jh):
    if fz%4 == 0:
      fh = '?'
    elif fz%4 == 1:
      fh = "!"
    elif fz%4 == 3:
      fh = '@'
    else:
      fh = '*'
    print(fh*(fz+1))

只修改后面的print怎么能画出这些图形

yoin 发表于 2020-4-16 13:42

if fz%4 == 0:
      fh = '?'
    elif fz%4 == 1:
      fh = "!"
    elif fz%4 == 3:
      fh = '@'

为啥是%4,不是%3 ?

CxYan9 发表于 2020-4-16 13:55

yoin 发表于 2020-4-16 13:42
if fz%4 == 0:
      fh = '?'
    elif fz%4 == 1:


因为一共有4种符号么?!@*

lzhh 发表于 2020-4-16 14:22

yoin 发表于 2020-4-16 13:42
if fz%4 == 0:
      fh = '?'
    elif fz%4 == 1:


因为我有4个符号

Zeaf 发表于 2020-4-16 14:31

又是古老的问题{:1_925:}
仍记得初学的时候打星星

huanwuying 发表于 2020-4-16 15:03

本帖最后由 huanwuying 于 2020-4-16 15:06 编辑

前三个只改print我知道怎么打:
print((' '*fz)+fh*(jh-fz))
print((' '*(jh-fz-1))+fh*(2*fz+1))      
print((' '*fz)+fh*(2*(jh-fz)+1))
后面只改print,作为新手的我暂时解决不了

silypp 发表于 2020-4-16 15:04

huanwuying 发表于 2020-4-16 15:03
前三个只改print我知道怎么打:
print((' '*fz)+fh*(jh-fz))
print((' '*(jh-fz-1))+fh*(2*fz+1))      ...

他这个有部分符号消失了的

慕容 发表于 2020-4-16 15:08

   print((jh-fz)*fh) 第一个简单,剩下的还得想,我是刚学习python{:1_909:}

yoin 发表于 2020-4-16 16:22

lzhh 发表于 2020-4-16 14:22
因为我有4个符号

我看你的截图中没有“@”{:1_924:}

dleo 发表于 2020-4-16 16:48

rjust(), ljust(), center() 了解一下
页: [1] 2
查看完整版本: Python用for in 循环怎么画符号的图形