检查输入的第一个字符是否是元音不起作用

时间:2018-12-03 22:13:22

标签: python python-3.x

我正在尝试编写一个程序,以确定输入背后的确定器。

#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”。该问题的解决方案是什么?

2 个答案:

答案 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并开箱即用地进行索引。

还要注意可读性方面的改进:

  • 使用snake_case命名变量
  • 用空格开始评论
  • 不要将条件放在括号中

有关代码样式的更多问题和详细信息,请参见python样式指南PEP8

干杯!