当前位置: 首页 > news >正文

【Python】文本对齐方式

一、题目

In Python, a string of test can be aligned left, right and cneter.

.ljust(width)

This method returns a left aligned string of length width.

>>> width = 20

>>> print 'HackerRank'.ljust(width,'-')

HackerRank----------

 .center(width)

This method returns a centered string of length width.

>>> width = 20

>>> print 'HackerRank'.center(width,'-')

-----HackerRank-----

.rjust(width)

This method returns a right aligned string of length width.

>>> width = 20
>>> print 'HackerRank'.rjust(width,'-')
----------HackerRank

Task 

You are given a partial code that is used for generating the HackerRank Logo of variable thickness.

Sample Input

5

Sample Output

    H    HHH   HHHHH  HHHHHHH 
HHHHHHHHHHHHHH               HHHHH             HHHHH               HHHHH             HHHHH               HHHHH             HHHHH               HHHHH             HHHHH               HHHHH             HHHHHHHHHHHHHHHHHHHHHHHHH   HHHHHHHHHHHHHHHHHHHHHHHHH   HHHHHHHHHHHHHHHHHHHHHHHHH   HHHHH               HHHHH             HHHHH               HHHHH             HHHHH               HHHHH             HHHHH               HHHHH             HHHHH               HHHHH             HHHHH               HHHHH             HHHHHHHHH HHHHHHH  HHHHH   HHH    H     

二、代码

# Replace all ______ with rjust, ljust or center.# This must be an odd number
thickness = int(input())
c = 'H'# Top Cone
for i in range(thickness):print((c*i).rjust(thickness-1)+c+(c*i).ljust(thickness-1))# Top Pillars
for i in range(thickness+1):print((c*thickness).center(thickness*2)+(c*thickness).center(thickness*6))# Middle Belt
for i in range((thickness+1)//2):print((c*thickness*5).center(thickness*6))# Bottom Pillars
for i in range(thickness+1):print((c*thickness).center(thickness*2)+(c*thickness).center(thickness*6))# Bottom Cone
for i in range(thickness):print(((c*(thickness-i-1)).rjust(thickness)+c+(c*(thickness-i-1)).ljust(thickness)).rjust(thickness*6))

三、解读

题目要求打印一个HackerRank Logo,Logo的厚度由用户输入的奇数决定。

thickness = int(input())
  • 用户输入厚度值,并转换成整数,请注意这里需要输入奇数。 
c = 'H'
  • 定义一个字符c,并设置为'H'
# Top Cone
for i in range(thickness):print((c * i).rjust(thickness - 1) + c + (c * i).ljust(thickness - 1))
  • 这部分代码打印Logo的顶部圆锥部分。
  • for i in range(thickness) : 确定圆锥的行数(厚度)
  • (c * i).rjust(thickness - 1) 生成 i 个 'H' 字符并右对齐到 thickness - 1 的宽度。
  • c 是中间的单个'H'字符
  • (c * i).ljust(thickness - 1) 生成 i 个 'H' 字符并左对齐到 thickness - 1 的宽度
  • 这些部分合并后打印成顶部圆锥的形状

# Top Cone

thickness = 5
for i in range(thickness):print((c * i).rjust(thickness - 1))
    HHHHHH
HHHH
thickness = 5
for i in range(thickness):print((c * i).rjust(thickness - 1) + c)
    HHHHHHHHHH
HHHHH
thickness = 5
for i in range(thickness):print((c * i).rjust(thickness-1) + c + (c * i).ljust(thickness - 1))
    H    HHH   HHHHH  HHHHHHH 
HHHHHHHHH
# Top Pillars
for i in range(thickness + 1):print((c * thickness) * center(thickness * 2) + (c * thickness).center(thickness * 6))
  • 这部分代码打印Logo的顶部支柱部分
  • for i in range(thickness + 1) :循环从 0 到 thickness
  • (c * thickness).center(thickness * 2) :生成 thickness 个 'H' 字符并居中对齐到 thickness * 2 的宽度
  • (c * thickness).center(thickness * 6) :生成 thickness 个 'H' 字符并居中对齐到 thickness * 6 的宽度,这用于在支柱之间添加空格。
  • 这些部分合并后打印成顶部支柱的形状。

# Top Pillars

print((c * thickness) * center(thickness * 2) + (c * thickness).center(thickness * 6))

thickness = 5
for i in range(thickness + 1):print((c * thickness) * center(thickness * 2))
  HHHHH   HHHHH   HHHHH   HHHHH   HHHHH   HHHHH   
thickness = 5
for i in range(thickness + 1):print((c * thickness) * center(thickness * 2) + (c * thickness).center(thickness * 6))
  HHHHH               HHHHH             HHHHH               HHHHH             HHHHH               HHHHH             HHHHH               HHHHH             HHHHH               HHHHH             HHHHH               HHHHH             

# Middle Belt
for i in range((thickness + 1) // 2):print((c * thickness * 5).center(thickness * 6))
  •  这部分代码打印 Logo 的中间腰带部分。
  • for i in range((thickness+1)//2): 循环从 0 到 (thickness + 1) // 2 - 1,确保中间腰带的行数是奇数。
  • (c*thickness*5).center(thickness*6) 生成 thickness * 5 个 'H' 字符并居中对齐到 thickness * 6 的宽度。

# Middle Belt

print((c * thickness * 5).center(thickness * 6))

thickness = 5
for i in range((thickness + 1)//2):print((c * thickness * 5).center(thickness * 6))
  HHHHHHHHHHHHHHHHHHHHHHHHH   HHHHHHHHHHHHHHHHHHHHHHHHH   HHHHHHHHHHHHHHHHHHHHHHHHH   
# Bottom Pillars
for i in range(thickness + 1):print((c * thickness).center(thickness * 2) + (c * thickness).center(thickness * 6))
  •  这部分代码打印 Logo 的底部支柱部分,与顶部支柱类似。
  • for i in range(thickness+1): 循环从 0 到 thickness。
  • (c*thickness).center(thickness*2) 和 (c*thickness).center(thickness*6) 分别用于打印支柱和支柱之间的空格。

# Bottom Pillars

thickness = 5
for i in range(thickness + 1):print((c * thickness).center(thickness * 2))
  HHHHH   HHHHH   HHHHH   HHHHH   HHHHH   HHHHH   
thickness = 5
for i in range(thickness + 1):print((c * thickness).center(thickness * 2) + (c * thickness).center(thickness * 6))
  HHHHH               HHHHH             HHHHH               HHHHH             HHHHH               HHHHH             HHHHH               HHHHH             HHHHH               HHHHH             HHHHH               HHHHH            

# Bottom Cone
for i in range(thickness):print(((c * (thickness - i - 1)).rjust(thickness) + c + (c * (thickness - i - 1)).ljust(thickness)).rjust(thickness * 6))
  • 这部分代码打印 Logo 的底部圆锥部分。
  • for i in range(thickness): 循环从 0 到 thickness - 1。
  • (c*(thickness-i-1)).rjust(thickness) 生成 (thickness - i - 1) 个 'H' 字符并右对齐到 thickness 的宽度。
  • c 是中间的单个 'H' 字符。
  • (c*(thickness-i-1)).ljust(thickness) 生成 (thickness - i - 1) 个 'H' 字符并左对齐到 thickness 的宽度。
  • 这些部分合并后,整体再使用 rjust(thickness*6) 右对齐到 thickness * 6 的宽度,确保底部圆锥与顶部圆锥对齐。

# Bottom Cone

thickness = 5
for i in range(thickness):print((c * (thickness - i - 1)).rjust(thickness))
 HHHHHHHHHH
thickness = 5
for i in range(thickness):print((c * (thickness - i - 1)).rjust(thickness) + c)
 HHHHHHHHHHHHHHH
thickness = 5
for i in range(thickness):print((c * (thickness - i - 1)).rjust(thickness) + c + (c * (thickness - i - 1)).ljust(thickness))
 HHHHHHHHH HHHHHHH  HHHHH   HHH    H     
thickness = 5
for i in range(thickness):print(((c * (thickness - i - 1)).rjust(thickness) + c + (c * (thickness - i - 1)).ljust(thickness)).rjust(thickness * 6))
                    HHHHHHHHH HHHHHHH  HHHHH   HHH    H     

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 大模型技术:发展历程、经典模型、微调与应用[更新中...]
  • Kafka之存储设计
  • 2024最新手机软件APP下载排行网站源码 软件下载站PHP源码
  • 每日一题~960 div2 A+B+C(简单奇偶博弈,构造,观察性质算贡献)
  • robotframework语法易错点总结(更新中...)
  • 代码审计 | .NET SqlSugar框架注入漏洞
  • Java 哈希表
  • 如何在Linux上使用Ansible自动化部署
  • NOI大纲——普及组——素数筛法
  • CentOS搭建Apache服务器
  • 【深度学习】yolov8-det目标检测训练,拼接图的分割复原
  • 网络安全防御【IPsec VPN搭建】
  • 环信+亚马逊云科技服务:助力出海AI社交应用扬帆起航
  • Python3网络爬虫开发实战(3)网页数据的解析提取
  • SSIS_SQLITE
  • [Vue CLI 3] 配置解析之 css.extract
  • [数据结构]链表的实现在PHP中
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • 11111111
  • 2017 前端面试准备 - 收藏集 - 掘金
  • Android Studio:GIT提交项目到远程仓库
  • Android优雅地处理按钮重复点击
  • egg(89)--egg之redis的发布和订阅
  • Fabric架构演变之路
  • hadoop集群管理系统搭建规划说明
  • JAVA_NIO系列——Channel和Buffer详解
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • MySQL-事务管理(基础)
  • PHP面试之三:MySQL数据库
  • React组件设计模式(一)
  • unity如何实现一个固定宽度的orthagraphic相机
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 说说动画卡顿的解决方案
  • 小程序button引导用户授权
  • - 转 Ext2.0 form使用实例
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • # include “ “ 和 # include < >两者的区别
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • #职场发展#其他
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (9)STL算法之逆转旋转
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (附源码)springboot教学评价 毕业设计 641310
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (七)c52学习之旅-中断
  • (七)glDrawArry绘制
  • (强烈推荐)移动端音视频从零到上手(下)
  • (四)linux文件内容查看
  • (转)Windows2003安全设置/维护
  • (转)德国人的记事本
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)