从用户输入更新变量

Updating Variable from User Input

我正在尝试制作一个程序,让用户输入联系信息,然后存储在 Google Sheets 文档中。用户通过短语输入他们的输入:

def add_phone():
    contact_phone = input("Please enter the contact's phone number: ")

我用它来设置 contact_phone 变量,该变量在文档顶部由 contact_phone = '' 定义。问题是当我尝试将此信息发送到 Google 表格文档时

def store_info(contact_phone):
    worksheet.append_row(contact_phone)

它说

Traceback (most recent call last):
  File "/Users/user/PycharmProjects/contactList/main.py", line 46, in <module>
    add_contact()
  File "/Users/user/PycharmProjects/contactList/main.py", line 19, in add_contact
    store_info()
TypeError: store_info() missing 7 required positional arguments: 'contact_fname', 'contact_lname', 'contact_phone', 'contact_email', 'contact_address', 'contact_birthday', and 'contact_notes'

如您所见,我使用的变量不仅仅是 contact_phone,但同样的问题适用于所有使用的变量(contact_fname、contact_lname 等) 我想知道在我到达这一步之前是否有任何方法可以将变量从 '' 更新为输入变量(phone 数字),而不停止代码。

我曾尝试在用户输入后将变量设置为自身(contact_phone = contact_phone),但我没有成功。

Google 电子表格中似乎有 7 列。 您需要传递列表中的所有 7 列。 例如

worksheet.append_row(['contact_fname', 'contact_lname', contact_phone, 'contact_email', 'contact_address', 'contact_birthday', 'contact_notes'])

替换实际值。

如果您只需要追加contact_phone,那么首先获取行列表中的详细信息并追加行[3] = contact_phone。

我找到了答案。我首先在我的输入函数中定义全局变量:global contact_phone(如用户建议:martineau)。

但这并没有解决我所有的问题。我有一个包含所有步骤的函数,包括输入函数和我的函数 sends/saves Google Sheet 文档的信息。我意识到变量在函数完成之前不会更新,所以我从主函数中删除了 Google Sheets 函数(读取输入的变量)并在调用我的函数后自行调用它主要功能:

add_contact()
store_info()

这可以让变量更新为用户在函数结束时输入的内容。然后我的下一个函数 (store_info) 将能够读取输入的变量并将这些更新的变量发送到 Google Sheet 文档,允许它们是用户输入的任何内容。 感谢所有贡献的人!