疾风の影子 2022-01-20 22:32 采纳率: 0%
浏览 20

这是一个软文风转换程序,当键入y或Y继续后,无法输入新文本,该如何改善?

问题遇到的现象和发生背景

这是一个软文风转换程序,当键入y或Y继续后,无法输入新文本,该如何改善?

问题相关代码,请勿粘贴截图
txt = str(input("请输入一段你想转换为软文风的文字:"))
linewidth = int(input("请输入一个你想要的长度(ღ´・ᴗ・` 比心):"))
def spl(line):
    plist = [
             ',', '!', '?', ',', '.', '。',
             '!', '?', " ", chr(12288),
             "#", "¥" , "$", "^",
             "&", "/", "\"", "\\"
                                             ]
    for p in plist:
        line = line.replace(p, "\n")
    return line.splitlines()
def pri_1(line):
    global linewidth
    while len(line) > linewidth:
        print(line[0:linewidth])
        line = line[linewidth:]
    print(line.center(linewidth, chr(12288)))
def pri_2(line):
    global linewidth
    print(line.center(linewidth, chr(12288)))
newlines = spl(txt)
def main():
    while True:
        try:
            judge = int(input("如果你想适用于长句,并限制各行字数长度,请回复1,如果仅适用于短句,且不限制各行字数长度,请回复0:"))
            if judge == 1:
                for newline in newlines:
                    pri_1(newline)
            elif judge == 0:
                for newline in newlines:
                    pri_2(newline)           
            else:
                print ("输入格式有误,请重新输入啊!!!")
                continue
            flag = input('是否继续转换?(输入Y或y继续,其他则终止):')
            if flag.lower() != "y":
                print("再见啦~")
                break

        except Exception:
            print ("输入格式有误,请重新输入啊!!!")
            continue

if __name__ == '__main__':
    main()
运行结果及报错内容

无法键入新文本

我的解答思路和尝试过的方法

想不到

我想要达到的结果

可以在每次继续后键入新文本

  • 写回答

1条回答 默认 最新

  • 陈年椰子 2022-01-20 23:31
    关注

    大概看了下逻辑,改了一下,是不是这个意思?

    linewidth = 0
    
    def spl(line):
        plist = [
            ',', '!', '?', ',', '.', '。',
            '!', '?', " ", chr(12288),
            "#", "¥", "$", "^",
            "&", "/", "\"", "\\"
        ]
        for p in plist:
            line = line.replace(p, "\n")
        return line.splitlines()
    
    
    def pri_1(line):
        global linewidth
        while len(line) > linewidth:
            print(line[0:linewidth])
            line = line[linewidth:]
        print(line.center(linewidth, chr(12288)))
    
    
    def pri_2(line):
        global linewidth
        print(line.center(linewidth, chr(12288)))
    
    
    
    
    
    def main():
        while True:
            try:
                txt = str(input("请输入一段你想转换为软文风的文字:"))
                linewidth = int(input("请输入一个你想要的长度(ღ´・ᴗ・` 比心):"))
                newlines = spl(txt)
                judge = int(input("如果你想适用于长句,并限制各行字数长度,请回复1,如果仅适用于短句,且不限制各行字数长度,请回复0:"))
                if judge == 1:
                    for newline in newlines:
                        pri_1(newline)
                elif judge == 0:
                    for newline in newlines:
                        pri_2(newline)
                else:
                    print("输入格式有误,请重新输入啊!!!")
                    continue
                flag = input('是否继续转换?(输入Y或y继续,其他则终止):')
                if flag.lower() != "y":
                    print("再见啦~")
                    break
    
            except Exception:
                print("输入格式有误,请重新输入啊!!!")
                continue
    
    
    if __name__ == '__main__':
        main()
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 1月20日

悬赏问题

  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)