【问题标题】:output comes out with brackets and quotation marks [duplicate]输出带有括号和引号[重复]
【发布时间】:2026-01-26 10:30:01
【问题描述】:

您好,我正在尝试打印此功能,但输出带有括号和引号......就像这样

('1', ',December', ',1984')

def date_string(day_num, month_name, year_num):
    """ Turn the date into a string of the form
            day month, year
    """
    date = str(day_num) , "," + month_name , "," + str(year_num)
    return date
print(date_string(1, "December", 1984))

【问题讨论】:

    标签: python


    【解决方案1】:
    date = str(day_num) , "," + month_name , "," + str(year_num)
    

    使用此代码,您创建的是元组而不是字符串。

    要改为创建字符串,您有多种选择:

    date = '{} {},{}'.format(day_num, month_name, year_num) # Recommended method
    

    date = '%s %s, %s' % (day_num, month_name, year_num) # Fairly outdated
    

    或根据其他答案使用+ 进行连接。使用+ 进行字符串连接并不理想,因为您必须确保将每个操作数转换为字符串类型。

    【讨论】:

      【解决方案2】:

      问题是你有一些逗号,,你需要加号+

          date = str(day_num) , "," + month_name , "," + str(year_num)
      

      这是创建一个元组而不是一个字符串。改成:

          date = str(day_num) + "," + month_name + "," + str(year_num)
      

      【讨论】:

        【解决方案3】:

        在创建变量date 时,尝试将, 更改为+。这将创建一个字符串而不是一个列表。

        def date_string(day_num, month_name, year_num):
        """ 
                Turn the date into a string of the form
                day month, year
        """
        date = str(day_num) + ", " + month_name + ", " + str(year_num)
        return date
        print(date_string(1, "December", 1984))
        

        【讨论】:

          【解决方案4】:

          如果您使用的是 Python 版本 3.6 或更高版本,则可以按照以下方式使用所谓的 f 字符串来执行该任务

          def date_string(day_num, month_name, year_num):
              date = f"{day_num},{month_name},{year_num}"
              return date
          print(date_string(1, "December", 1984)) #output: 1,December,1984
          

          请记住,它不适用于旧版本的 Python,因此请在使用之前检查您的版本。如果您想了解更多关于 f 字符串的信息,请阅读 this article

          【讨论】:

            最近更新 更多