当前位置: 首页 > 面试题库 >

“%s”%格式与“ {0}”。format()与“?” 格式

何德寿
2023-03-14
问题内容

在有关SQLite的)这篇文章中,aaronasterling告诉我

  • cmd = "attach \"%s\" as toMerge" % "b.db" : 是错的
  • cmd = 'attach "{0}" as toMerge'.format("b.db") : 是正确的
  • cmd = "attach ? as toMerge"; cursor.execute(cmd, ('b.db', )) :是对的

但是,我认为第一和第二是相同的。这三个之间有什么区别?


问题答案:

“attach "%s" as toMerge” % “b.db”

您应该使用'而不是",这样就不必逃脱。

您使用了不建议使用的旧格式字符串。

'attach "{0}" as toMerge'.format("b.db")

这将使用来自较新Python版本的新格式字符串功能,如果可能的话,应使用旧版本而不是旧版本。

"attach ? as toMerge"; cursor.execute(cmd, ('b.db', ))

该代码完全省略了字符串格式,而是使用了SQLite功能,因此这是正确的方法。

最大优势:无SQL注入风险



 类似资料:
  • 在此示例中,我们根据美国区域设置和丹麦语区域设置格式化货币。 IOTester.java import java.text.NumberFormat; import java.util.Locale; public class I18NTester { public static void main(String[] args) { Locale enLocale = new L

  • 在此示例中,我们以百分比格式格式化数字。 IOTester.java import java.text.NumberFormat; import java.util.Locale; public class I18NTester { public static void main(String[] args) { Locale enLocale = new Locale("en"

  • 本文向大家介绍python中使用%与.format格式化文本方法解析,包括了python中使用%与.format格式化文本方法解析的使用技巧和注意事项,需要的朋友参考一下 初学python,看来零零碎碎的格式化文本的方法,总结一下python中格式化文本的方法。使用不当的地欢迎指出谢谢。 1、首先看使用%格式化文本 常见的占位符: 使用方法: 使用的时候不知道写什么的地方直接使用 %s 进行代替,

  • 数字的Number类型和日期Date类型的格式化是默认安装了的,包括@NumberFormat注解和@DateTimeFormat注解。如果classpath路径下存在Joda Time依赖,那么完美支持Joda Time的时间格式化库也会被安装好。如果要注册定制的格式化器或转换器,请覆写addFormatters方法: @Configuration @EnableWebMvc public cl

  • 以下是在日期格式化模式中使用字符。 Sr.No. 类和描述 1 G 要显示时代。 2 y 显示年份。 有效值yy,yyyy。 3 M 显示月份。 有效值MM,MMM或MMMMM。 4 d 显示月份的日期。 有效值d,dd。 5 h 显示一天中的小时(上午1-12点/下午)。 有效值hh。 6 H 显示一天中的小时(0-23)。 有效值HH。 7 m 显示小时(0-59)。 有效值mm。 8 s 显

  • 问题内容: Python 2.6引入的方法与现有%运算符的语法略有不同。哪个更好,什么情况下适合? 以下使用每种方法并具有相同的结果,那么有什么区别? 此外,何时在Python中进行字符串格式化?例如,如果我的日志记录级别设置为,那么执行以下操作是否还会对我有所帮助?如果是这样,有办法避免这种情况吗? 问题答案: 第一个问题在许多方面似乎都更加复杂。一个令人烦恼的事情是它如何可以接受变量或元组。你