python - Python 没有调用这个函数,我不知道为什么
问题描述
试图让这段代码工作,它没有在我的课堂上调用我的“makeDictionary”函数。我不知道为什么。有什么想法吗?
from StringCount import *
def main():
products = StringCount()
doc = input("Enter File Location: ")
doc_object = open(doc, "r").read()
items = doc_object.split()
products.makeDictionary(items)
itemList = products.sortItems()
print(f"{'Product':^15}{'Quantity':^10}")
print("-" * 25)
for p in range(len(itemList)):
item, count = itemList[p]
print(f"{item:<15}{count:>10}")
if __name__ == "__main__":
main()
编辑:对于垃圾帖子感到抱歉,我仍在努力解决所有问题。这是我的课程代码。
from operator import itemgetter
class StringCount:
def __init__(self):
self.notes = {}
self.key = []
self.value = []
def makeDictionary(self, items):
for item in items:
item.strip('')
if item == int:
self.value.append(item)
if item == str:
self.key.append(item)
for i in range(len(self.key) and len(self.value)):
self.notes[self.key[i]] = self.value[i]
编辑#2:好的,所以要澄清我的问题。我不是在寻找关于课堂的澄清。在 python 中运行这个程序,我输入文件位置,它完全跳过了 'makeDictionary' 方法。现在我只是不明白为什么,我相信有一个小原因。如果有人可以提供帮助,将不胜感激。
解决方案
正如@jasonharper 指出的那样,
if item == int:
不会工作。而是使用
if isinstance(item, int):
str 同样的事情
推荐阅读
- php - 覆盖特征方法时检测递归
- javascript - 如何使用 jquery 获取动态生成的输入字段值
- powershell - 使用 PowerShell 编辑大型 csv 文件的前 3 行
- android - RecyclerView 中的进度条一直显示在顶部
- python - 将 Pandas 数据写入 CSV 或 SQL 会导致删除尾随 0
- java - 启用多因素身份验证时,Java 应用程序中的 ADAL4J 不适用于本机应用程序(Azure Active Directory)
- drag-and-drop - VirtualBox从主机拖放到来宾不起作用
- c# - 连接到 oracle .net 核心
- python - python - 如何使用 ArgumentParser 通过命令行接受参数
- java - 无法使用 Desktop.getDesktop().open(new File("C:/path/firefox.jar");) 执行 jar 文件;当 jar 需要外部文件时