打印带有“#”符号的高度列表

时间:2019-09-10 15:45:01

标签: python printing

今天,我给您带来一个看似简单的问题,它并不像看起来的那么简单(至少对我而言)!

想象一下我有以下整数列表:

num = [3,1,1,2]

我想打印与高度相对应的“ $”,即:


&
&     & 
& & & &



for i in num:
    print("#"*i)


打印此:


& & &
&
&
& &


但是我要显示前者!

我尝试过:


for i in range(1, max(num)+1): # loops through the rows 
   for j in num:
       if j == i:
            print("#")
       else:
            print("")

但是过了一会儿,我了解到该条件没有任何意义,因为我正在将行号与高度进行比较!

我尝试了其他方法,但没有一个能正常工作,如果有人可以帮助我,我将不胜感激! 谢谢

2 个答案:

答案 0 :(得分:7)

我只是从最大数字开始向后迭代,检查列表中的每个元素是否大于或等于该数字,然后打印所需的字符,否则打印一个空格。

 export class LoginPage implements OnInit {
  private formlogin : FormGroup;
  userId : any 
  token : any 
  constructor(private formBuilder: FormBuilder,private servicelogin:LoginService,
    public toastController: ToastController,private router : Router)
   { 

    this.formlogin = this.formBuilder.group({
    username: ['', Validators.required],
    password: [''],
  });}

  logForm(){
    //console.log(this.formlogin.value);
    this.servicelogin.login(this.formlogin.value).subscribe(data=>{
       let res: any
       res = data;
       console.log(res);


    //this.router.navigateByUrl('/home')

    })


  }
  ngOnInit() {
  }

}

答案 1 :(得分:1)

一个好问题!这是我不使用任何程序包的看法

def printH(nList):
    m = max(nList)
    while m > 0:
        for l in nList:
            if(l>=m):
                print('#',end = ' ')
            else:
                print(' ',end = ' ')
        print('')
        m-=1
num = [5,3,1,1,2]
printH(num)

预期输出:

#
#
# #
# #     #
# # # # #