Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python (参数)s在这里是什么意思_Python_Sql_Wildcard - Fatal编程技术网

Python (参数)s在这里是什么意思

Python (参数)s在这里是什么意思,python,sql,wildcard,Python,Sql,Wildcard,我有一个这样的代码片段。我对%()s的用法感到困惑。 如果用于格式化参数, 我们不应该用%(threshold)d作为threshold,因为它是一个数字吗 def recommendations_for_user(user_id, threshold=4.5): # Join with the courses table query = """ SELECT title, rating FROM recommendations INNER JO

我有一个这样的代码片段。我对%()s的用法感到困惑。 如果用于格式化参数, 我们不应该用%(threshold)d作为threshold,因为它是一个数字吗

def recommendations_for_user(user_id, threshold=4.5):
  # Join with the courses table
  query = """
  SELECT title, rating FROM recommendations
    INNER JOIN courses ON courses.course_id = recommendations.course_id
    WHERE user_id=%(user_id)s AND rating>%(threshold)s
    ORDER BY rating DESC
  """
  # Add the threshold parameter
  predictions_df = pd.read_sql(query, db_engine, params = {"user_id": user_id, 
                                                           "threshold": threshold})
  return predictions_df.title.values

# Try the function you created
print(recommendations_for_user(12, 4.65))
%(阈值)s和%(阈值)d将执行相同的操作,但%(阈值)d将强制执行格式

%s将调用str(arg),其中as%d将在调用str()之前调用int(arg)

因此,对于%d,它将是str(int(arg)),如果arg不是有效数字,则会导致错误。%s不会引起任何错误

因此,如果您确信threshold始终是一个有效数字,则可以使用%(threshold)s。

%(threshold)s和%(threshold)d将执行相同的操作,但%(threshold)d将强制使用格式

%s将调用str(arg),其中as%d将在调用str()之前调用int(arg)

因此,对于%d,它将是str(int(arg)),如果arg不是有效数字,则会导致错误。%s不会引起任何错误


因此,如果您确定阈值始终是一个有效数字,您可以使用%(阈值)s.

这不是(唯一)SQL。问题和标签是主机语言和/或框架。您使用的是哪种dbms?这不是(唯一的)SQL。问题并标记主机语言和/或框架。您使用的是哪种数据库管理系统?如果此答案对您有帮助,请单击绿色复选框接受此答案,以便将此问题标记为已回答。如果此答案对您有帮助,请单击绿色复选框接受此答案,以便将此问题标记为已回答。