Func A 接受输入和 returns 一个 str。 Funcs B&C 应该使用 str A 来创建 strs B&C,而是再次提示来自 Func A 的相同输入

Func A takes inputs and returns a str. Funcs B&C are supposed to use str A to create strs B&C, but instead prompt the same inputs from Func A again

我的作业需要 3 个函数。第一个需要几个输入,然后 returns 一个字符串。第二个和第三个函数从第一个和 return 它们自己的字符串中提取信息。我遇到的问题是,当我在 main() 中调用第二个和第三个函数时,系统再次提示我在第一个函数中输入。否则,第二个和第三个函数最终会产生我正在寻找的输出。

由于分配标准,我在编写函数方面有些受限,所以如果有点迂回,我深表歉意。我很确定我在这里只见树木不见森林,我们将不胜感激任何帮助!

def get_book_info():
    input_book_title = str(input("enter book title: "))
    format_title = input_book_title.strip()
    format_title = format_title.title()
    input_book_isbn = str(input("enter book ISBN: "))
    format_isbn = input_book_isbn.strip()
    input_author_name = str(input("enter author name: "))
    format_author = input_author_name.strip()
    format_author = format_author.title()
    input_publisher = str(input("Enter publisher: "))
    format_publisher = input_publisher.strip()
    format_publisher = format_publisher.title()
    input_year_published = int(input("enter year published: "))
    input_price = float(input("enter book price: "))
    info = f"{format_title}/{format_isbn}/{format_author}/{format_publisher}/{input_year_published}/{input_price:.2f}"
    return info


def to_csv_format():
    book_info_string = get_book_info()
    book_csv = book_info_string.replace("/", ", ")
    return book_csv


def to_json_format():
    book_info_string = get_book_info()
    # find title
    separator = book_info_string.find("/")
    json_title = book_info_string[0:separator]
    book_info_string = book_info_string[separator + 1:]
    # find ISBN
    separator = book_info_string.find("/")
    json_isbn = book_info_string[0:separator]
    book_info_string = book_info_string[separator + 1:]
    # find author
    separator = book_info_string.find("/")
    json_author = book_info_string[0:separator]
    book_info_string = book_info_string[separator + 1:]
    # find publisher
    separator = book_info_string.find("/")
    json_publisher = book_info_string[0:separator]
    book_info_string = book_info_string[separator + 1:]
    # find year published
    separator = book_info_string.find("/")
    json_year = book_info_string[0:separator]
    book_info_string = book_info_string[separator + 1:]
    # find price
    json_price = book_info_string 
    book_json = f'"title":"{json_title}","isbn":"{json_isbn}",author_name":"{json_author}","publisher":"{json_publisher}","year_published:":"{json_year}","price":"{json_price}"'
    return book_json


def main():
    get_book_info()
    print("----------------")
    book_csv = to_csv_format()
    print(book_csv)
    print("----------------")
    book_json = to_json_format()
    print(book_json)
    pass


main()

每次调用 get_book_info() 时,系统都会提示您输入数据。您只需在主函数中调用一次,将结果存储在一个变量中并将该变量传递给您的其他函数。

def get_book_info():
    input_book_title = str(input("enter book title: "))
    format_title = input_book_title.strip()
    format_title = format_title.title()
    input_book_isbn = str(input("enter book ISBN: "))
    format_isbn = input_book_isbn.strip()
    input_author_name = str(input("enter author name: "))
    format_author = input_author_name.strip()
    format_author = format_author.title()
    input_publisher = str(input("Enter publisher: "))
    format_publisher = input_publisher.strip()
    format_publisher = format_publisher.title()
    input_year_published = int(input("enter year published: "))
    input_price = float(input("enter book price: "))
    info = f"{format_title}/{format_isbn}/{format_author}/{format_publisher}/{input_year_published}/{input_price:.2f}"
    return info


def to_csv_format (book_info_string):
    book_csv = book_info_string.replace("/", ", ")
    return book_csv


def to_json_format (book_info_string):
    # find title
    separator = book_info_string.find("/")
    json_title = book_info_string[0:separator]
    book_info_string = book_info_string[separator + 1:]
    # find ISBN
    separator = book_info_string.find("/")
    json_isbn = book_info_string[0:separator]
    book_info_string = book_info_string[separator + 1:]
    # find author
    separator = book_info_string.find("/")
    json_author = book_info_string[0:separator]
    book_info_string = book_info_string[separator + 1:]
    # find publisher
    separator = book_info_string.find("/")
    json_publisher = book_info_string[0:separator]
    book_info_string = book_info_string[separator + 1:]
    # find year published
    separator = book_info_string.find("/")
    json_year = book_info_string[0:separator]
    book_info_string = book_info_string[separator + 1:]
    # find price
    json_price = book_info_string 
    book_json = f'"title":"{json_title}","isbn":"{json_isbn}",author_name":"{json_author}","publisher":"{json_publisher}","year_published:":"{json_year}","price":"{json_price}"'
    return book_json


def main():
    info = get_book_info()
    print("----------------")
    book_csv = to_csv_format (info)
    print(book_csv)
    print("----------------")
    book_json = to_json_format (info)
    print(book_json)
    pass


main()