Esther0290
Esther.239
采纳率0%
2021-03-02 19:17

python字符串截取及int函数问题

一道题:获得用户输入的一个数字,其中数字字符(0到9)用对应中文字符“〇一二三四五六七八九”替换,输出替换后的结果。

 

答案为:

n=input()

s="〇一二三四五六七八九"

for c in "0123456789":

       n=n.replace(c,s[int(c):int(c)+1])

print(n)

 

 

一直对int函数不懂,这里更不懂为什么replace括号里的s[int(c):int(c)+1]是啥意思了。

编程小白TAT

 

求大佬指教!!!!

 

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答

  • qq_41500251 垃圾管理员 1月前
    遍历“0123456789”的时候c是str类型,int是为了把str转为int
    
    s[int(c):int(c)+1] 这里好像没必要用切片  直接s[int(c)]就好了
    
    对于一个序列来说,比如s = “123456”
    
    切片s[1:3]的结果是“23”,也就是变量s下标[1,3)区间元素,前闭后开。
    
    s[start:end:step]这种形式叫做切片,可以找相关内容看一下。
    点赞 2 评论 复制链接分享
  • songhaixing2 给你骨质唱疏松 1月前

    input() 接收用户输入, 得到的输入结果都是 str(字符串类型的)

    int() 函数是将全数字的字符串转换成整数类型 : str---->int

    " s[int(c):int(c)+1] "  这个是列表的切片操作, 通过我上面的解释演示一下:

    比如 c = "2" (注意:是字符串), 然后 int("2") 得到 数字:2 , 进而-----> s[2:3],

    而 s[2:3] 指的是对列表 s 进行切片操作, 从索引 2 开始取到 3-1(取头不取尾), 于是拿到的就是 "二",

    推荐你看一下列表的切片讲解 : https://www.cnblogs.com/songhaixing/p/14017968.html

    这个是学习python得掌握的知识

    点赞 1 评论 复制链接分享
  • qq_45348083 时倾丶Te fuir 1月前

    也可以结合字典解题:

    n = input("請輸入(0-9):")
    x = "0123456789"
    y = "〇一二三四五六七八九"
    d = {}
    # 生成字典{0: '〇', 1: '一', 2: '二', 3: '三', 4: '四', 5: '五', 6: '六', 7: '七', 8: '八', 9: '九'}
    for i in x:
        d[int(i)] = y[int(i)]

    n = d[int(n)]
    print(n)

    点赞 评论 复制链接分享
  • weixin_44416114 异城一人 1月前

    输入的内容是str字符型,使用int强制转化为整型

    点赞 评论 复制链接分享