鱼C论坛

 找回密码
 立即注册
查看: 2852|回复: 15

[已解决]Python:每日一题 273

[复制链接]
发表于 2019-11-13 21:09:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 zltzlt 于 2019-11-14 18:05 编辑

今天的题目:


给出三个参数 string,length,fill_char,将字符串 “右对齐”。其中 string 是原字符串,length 是填充后字符串的长度,fill_char 是填充的字符(默认为 ' ')。具体实现效果看示例。

示例 1:

输入:string = "123",length = 5
输出:"  123"
解释:填充字符将会填充到字符串的左端,直到新字符串长度为 length(5)。
示例 2:

输入:string = "454545454545",length = 15,fill_char = '0'
输出:"000454545454545"
示例 3:

输入:string = "11",length = 2
输出:"11"


欢迎大家一起答题!
最佳答案
2019-11-13 22:56:53
赶上一次前排,不知理解得对不对
1. 用 Python 自带的
  1. def f273_1(string, length, fill_char=' '):
  2.     return f"{string:{fill_char}>{length}}"
复制代码


2. 不用 format
  1. def f273_2(string, length, fill_char=' '):
  2.     n = len(string)
  3.     return string if length < n else fill_char * (length - n) + string
复制代码

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-11-13 21:20:42 | 显示全部楼层
def abc(string,length,fill_char=' '):
    return fill_char*(length-len(string))+string

评分

参与人数 1荣誉 +1 鱼币 +1 贡献 +1 收起 理由
zltzlt + 1 + 1 + 1

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-13 22:12:38 | 显示全部楼层
你这题都没写清楚
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-13 22:23:20 | 显示全部楼层
  1. string='12'
  2. length=1
  3. fill_char='*'
  4. #------------------------------------
  5. #笨办法
  6. def f0(string,length,fill_char=' '):
  7.         n=length-len(string)
  8.         if n>0:
  9.                 s=fill_char*n+string
  10.         else:
  11.                 s=string
  12.         print(s)
  13. f0(string,length)
  14. f0(string,length,fill_char)
  15. #%
  16. n=12
  17. a='{:*>12}'.format(string)
  18. b=f'{length-len(string)}'
  19. print(a)
复制代码

评分

参与人数 1荣誉 +1 鱼币 +1 贡献 +1 收起 理由
zltzlt + 1 + 1 + 1

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-13 22:56:53 | 显示全部楼层    本楼为最佳答案   
赶上一次前排,不知理解得对不对
1. 用 Python 自带的
  1. def f273_1(string, length, fill_char=' '):
  2.     return f"{string:{fill_char}>{length}}"
复制代码


2. 不用 format
  1. def f273_2(string, length, fill_char=' '):
  2.     n = len(string)
  3.     return string if length < n else fill_char * (length - n) + string
复制代码

评分

参与人数 1荣誉 +1 鱼币 +1 贡献 +1 收起 理由
zltzlt + 1 + 1 + 1

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-11-14 03:09:29 | 显示全部楼层
本帖最后由 XiaoPaiShen 于 2019-11-14 03:11 编辑

示例 3:

输入:string = "11",length = 2
输出:"12"

不知如何能输出‘12’

如果 length < len(string)
该如何截取字符串
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-14 09:12:16 | 显示全部楼层
  1. def fun273(string,length,fill_char=' '):
  2.     return fill_char*(length-len(string)) + string
复制代码

题目有两点不太清楚:
第一,没说length小于字符串长度时怎么处理,所以我默认不会出现这种情况了
第二,示例3结果12不知道什么鬼,写错了吧?

评分

参与人数 1荣誉 +1 鱼币 +1 贡献 +1 收起 理由
zltzlt + 1 + 1 + 1

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-14 10:43:43 | 显示全部楼层

def abc(string,length,fill_char=' '):
     return  '{0:{1}>{2}}'.format(string,fill_char,length)

评分

参与人数 1荣誉 +1 鱼币 +1 贡献 +1 收起 理由
zltzlt + 1 + 1 + 1

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-14 12:56:03 | 显示全部楼层
  1. def solve(string,length,fill_char=' '):
  2.     return (length - len(string))*fill_char + string
复制代码

评分

参与人数 1荣誉 +1 鱼币 +1 贡献 +1 收起 理由
zltzlt + 1 + 1 + 1

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-14 13:50:31 | 显示全部楼层
示例3 出毛病啦!!!!
原字符串内容都改啦!!
这回的示例有 BUG   !!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-14 13:58:55 | 显示全部楼层
来来来,大战几百回!
  1. def solve(string:str,length:int,fill_char:'char'=' ')->str:
  2.     if len(string) < length:
  3.         return (length-len(string))*fill_char + string
  4.     else:
  5.         return string
  6. if __name__ == '__main__':
  7.     print('示例1 "  123" 输出:',solve('123',5))
  8.     print('示例2 "000454545454545" 输出:',solve('454545454545',15,'0'))
  9.     print('示例3 有毛病,不给输出!')
复制代码

评分

参与人数 1荣誉 +1 鱼币 +1 贡献 +1 收起 理由
zltzlt + 1 + 1 + 1

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-14 18:04:53 | 显示全部楼层
XiaoPaiShen 发表于 2019-11-14 03:09
示例 3:

输入:string = "11",length = 2

抱歉,手误打错了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-16 17:59:00 | 显示全部楼层
  1. def fun273(string,length,fill_char):
  2.     print(f'{string:{fill_char}>{length}}')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-16 19:11:24 From FishC Mobile | 显示全部楼层
阴阳神万物主 发表于 2019-11-14 13:58
来来来,大战几百回!

第九行代码我笑了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-4 13:06:03 | 显示全部楼层
  1. s = input('输入字符串:')
  2. length = int(input('请输入填充后字符串长度:'))
  3. fill_char = input('请输入填充的字符:')
  4. s1 = s.rjust(length,fill_char)
  5. print(s1)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-4 13:14:20 | 显示全部楼层
  1. s = input('输入字符串:')
  2. length = int(input('请输入填充后字符串长度:'))
  3. fill_char = input('请输入填充的字符:')
  4. fill_str = ''
  5. k = length - len(s)
  6. while k:
  7.     fill_str = fill_str + fill_char
  8.     k -= 1
  9. result = fill_str + s
  10. print(result)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-12 21:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表