Python ValueError:chr() arg 不在范围内(256)

2023-12-07

所以我正在学习python并重做一些旧项目。该项目涉及从命令行获取字典和要翻译的消息,并翻译该消息。 (例如:“btw,你好,你好”将被翻译为“顺便说一句,你好,你好吗”。

我们使用教授提供的扫描仪来读取标记和字符串。如果有需要我也可以在这里发布。这是我的错误:

Nathans-Air-4:py1 Nathan$ python translate.py test.xlt test.msg
Traceback (most recent call last):
  File "translate.py", line 26, in <module>
    main()
  File "translate.py", line 13, in main
    dictionary,count = makeDictionary(commandDict)
  File "/Users/Nathan/cs150/extra/py1/support.py", line 12, in makeDictionary
    string = s.readstring()
  File "/Users/Nathan/cs150/extra/py1/scanner.py", line 105, in readstring
    return self._getString()
  File "/Users/Nathan/cs150/extra/py1/scanner.py", line 251, in _getString
    if (delimiter == chr(0x2018)):
ValueError: chr() arg not in range(256)

这是我的主要 translate.py 文件:

from support import *
from scanner import *
import sys

def main():
    arguments = len(sys.argv)
    if arguments != 3:
        print'Need two arguments!\n'
        exit(1)
    commandDict = sys.argv[1]
    commandMessage = sys.argv[2]

    dictionary,count = makeDictionary(commandDict)

    message,messageCount = makeMessage(commandMessage)

    print(dictionary)
    print(message)

    i = 0
    while count < messageCount:
        translation = translate(message[i],dictionary,messageCount)
        print(translation)
        count = count + 1
        i = i +1
    main()

这是我正在使用的 support.py 文件......

from scanner import *

def makeDictionary(filename):
    fp = open(filename,"r")

    s = Scanner(filename)
    lyst = []
    token = s.readtoken()
    count = 0
    while (token != ""):
        lyst.append(token)
        string = s.readstring()
        count = count+1
        lyst.append(string)
        token = s.readtoken()
    return lyst,count

def translate(word,dictionary,count):
    i = 0
    while i != count:
        if word == dictionary[i]:
            return dictionary[i+1]
            i = i+1
        else:
            return word
            i = i+1
    return 0

def makeMessage(filename):
    fp = open(filename,"r")

    s = Scanner(filename)
    lyst2 = []
    string = s.readtoken()
    count = 0
    while (string != ""):
        lyst2.append(string)
        string = s.readtoken()
        count = count +  1
    return lyst2,count

有谁知道这里发生了什么事?我已经看过好几次了,我不知道为什么 readString 会抛出这个错误......这可能是我错过的一些愚蠢的事情


chr(0x2018)如果你使用 Python 3 就可以工作。

您拥有为 Python 3 编写的代码,但使用 Python 2 运行它。在 Python 2 中chr将为您提供 ASCII 范围内的一个字符串。这是一个 8 位字符串,因此最大参数值为chris 255。在 Python 3 中,您将获得一个 unicode 字符,并且 unicode 代码点可以达到更高的值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python ValueError:chr() arg 不在范围内(256) 的相关文章

随机推荐

  • 不显示背景图像的元素

    我正在尝试为 a 元素添加背景图像 但它只会显示图像的一部分 因此 如果我将 Home 作为值 则无论 home 占用的空间是什么 这就是图像的显示内容 如果该值是空它不会显示图像的任何内容 尽管我已经设置了要显示的 a 元素的宽度和高度
  • 解释 HTTP/1.1 标头字段值时使用什么编码

    在 HTTP 1 1 规范中 当涉及到定义标头时 我得到了这个 消息头 字段名称 字段值 字段值 字段内容 LWS field contet OCTET 和 TEXT 的定义是 OCTET TEXT 其中 CTL 指的是 US ASCII
  • 如何在delphi 7中释放字符串列表中的对象?

    下面是 Zarko Gajic 在 Delphi 的 TStrings 项目中释放对象的想法 在关于德尔福我使用的是 Delphi 7 TStringList 没有 OwnsObjects 运行以下代码会提示EaccessViolation
  • 向 .gitignore 添加新条目不起作用

    如果我理解正确的话 为了 忽略 一个文件 这样当我输入时它就不会出现git status or git add A我需要将其添加到 gitignore 文件中 我的目标是在向 Git 提交更改时永久忽略某个文件夹和文件 我尝试在编辑器中编辑
  • MongoDb / C# 过滤并获取所有子文档

    我在查询 Mongodb 集合时遇到困难 我正在使用的文档 public class Customer public ObjectId Id get set public int CustomerId get set public List
  • 如何在 datagridview 列中显示总和?

    我需要显示的总和count专栏从这里datagridview 但我不知道如何获取 datagridview 中的数据 当我点击按钮时 我想显示94 in label1 如何才能做到这一点 int sum 0 for int i 0 i lt
  • Ionic 取消硬后退按钮覆盖

    关于在 Ionic 中覆盖物理 Android BACK 按钮以提供自定义行为存在一些问题 Ionic 覆盖特定控制器的所有 后退 按钮行为 Ionic 如何覆盖后退按钮功能 但你如何取消覆盖恢复默认行为 我尝试更改处理程序的优先级 希望默
  • C3.js 从 CSV 中排除列

    我正在使用 C3 JS 通过从提供的 CSV 文件加载数据来创建多系列折线图 我可以绘制图表 但是我还没有发现是否可以仅绘制 CSV 中的某些列 我的图表正在绘制所有 CSV 列 我的 CSV 看起来像这样 Sex Age L M S P3
  • 使用 OpenDaylight 入门原型不起作用

    尝试跟随开放日光开发者教程获得在控制器上运行的初始 hello world 应用程序 但是运行命令 mvn archetype generate DarchetypeGroupId org opendaylight controller D
  • Dictionary 和 ConcurrentDictionary 之间修改集合时的不同行为

    使用如下所示的正常字典代码 我得到的异常是 集合已修改 枚举操作可能无法执行 Dictionary
  • 比较目标 C 中的时间和日期

    例如 如何在目标 C 中进行比较 以查看某个时间和日期期间是否与 plist 中已有的另一个时间和日期期间重叠 这最常用于预订 预订应用程序 以查看该特定时间段是否已被占用等 尝试这个来比较 NSDateFormatter dateForm
  • 在“unload”方法中关闭连接

    我继承了一个 Web 框架 以前的开发人员在页面生命周期的 init unload 方法中打开和关闭了他的数据库连接 本质上构造函数是这样的 简化以演示要点 public class BasePage protected DBConnect
  • C++货币输出

    我现在正在学习 C 课程 并已完成期末作业 然而 有一件事困扰着我 虽然我有正确的输出来测试特定的输出 basepay应该133 20它显示为133 2 有没有办法让它显示额外的 0 而不是将其保留 有人知道这是否可能以及如何做到吗 先感谢
  • ArrayUtil 在 Java 中导致意外错误

    每当我编写包含 ArrayUtil 的代码时 它都会导致意外错误 int values ArrayUtil randomIntArray 30 300 我使用 Eclipse 编写代码 并且 ArrayUtil 下始终有红色下划线 我究竟做
  • 下载文件夹的 Apache 热链接保护

    我试图避免从其他网站直接链接到我网站的可下载内容 我的 exe zip 和 msi 文件位于 files 目录下 我怎样才能避免直接链接到它们 提前致谢 将以下内容添加到 files 目录中的 htaccess 文件中 RewriteEng
  • Android Studio 上未找到名称为“default”的配置错误

    我正在尝试测试参考而不复制库项目 所以我创建了两个项目 一个是ProjectA其中之一是LibraryA 两个项目均位于 工作室项目文件夹 我正在尝试参考LibraryA from ProjectA我在标题中得到了错误 Here is 设置
  • awk 无法忽略“++”

    check a1 awk F v name check tolower 2 tolower name file txt 似乎 awk 在处理 字符串时存在一些问题 它无法检索文件中的值 然而 我已经尝试过改变check 44b 看起来工作得
  • 异常:“数据库行 [UnmarshalRecordImpl()] 中缺少类指示符字段。”使用 EclipseLink JAXB (MOXy) 解组 XML 时

    是否有任何方法可以使用 XmlDecriminatorNode XmlDecrimintatorValue 注释对下一个 XML 进行解组 或者有任何解决方法
  • 表示换行的首选位置

    假设我想在 HTML 表格单元格中显示以下文本 Honey Nut Cheerios Wheat Chex Grape Nuts Rice Krispies Some random cereal with a very long name
  • Python ValueError:chr() arg 不在范围内(256)

    所以我正在学习python并重做一些旧项目 该项目涉及从命令行获取字典和要翻译的消息 并翻译该消息 例如 btw 你好 你好 将被翻译为 顺便说一句 你好 你好吗 我们使用教授提供的扫描仪来读取标记和字符串 如果有需要我也可以在这里发布 这