我正在尝试编写一个程序,以确定输入背后的确定器。
#For now, this only works with letters A-D.
MyInput = input("What word do you want to find out if the determiner is a/an?")
Finder = list(MyInput)
if ('a' in Finder):
print ("Start with an.")
else:
print ("Start with a.")
但是,有一个小错误。当我输入单词“ bad”时,它表示我需要在单词之前加上“ an”。我只想说当第一个字母为A时,单词前必须有一个“ an”。该问题的解决方案是什么?
答案 0 :(得分:1)
这是因为in
检查是否可以在字符串的任何位置找到该字符。当您使用“坏”它可以。如果要检查第一个字符,请使用Finder[0]
MyInput = input("What word do you want to find out if the determiner is a/an?")
Finder = list(MyInput)
if (Finder[0].lower() == 'a'):
print ("Start with an.")
else:
print ("Start with a.")
答案 1 :(得分:0)
关于这个问题,使用str.startwith是最明确的方法:
ActiveRecord::Querying.class_eval do
def find_by_sql(sql, binds = [], preparable: nil, &block)
result_set = connection.select_all(sanitize_sql(sql), "#{name} Load", binds, preparable: preparable)
column_types = result_set.column_types.dup
columns_hash.each_key { |k| column_types.delete k }
message_bus = ActiveSupport::Notifications.instrumenter
payload = {
record_count: result_set.length,
class_name: name,
result_set: result_set
}
message_bus.instrument("instantiation.active_record", payload) do
result_set.map { |record| instantiate(record, column_types, &block) }
end
end
end
请注意以下事实:您不需要从字符串中列出列表:字符串是可迭代的,它们支持initializer.rb
并开箱即用地进行索引。
还要注意可读性方面的改进:
有关代码样式的更多问题和详细信息,请参见python样式指南PEP8。
干杯!