numbers = [1,2,3,4,5,6,7,8,9]
number = 1
Run Code Online (Sandbox Code Playgroud)
我可以在一行上写下以下内容吗?
if number in numbers:
print number
Run Code Online (Sandbox Code Playgroud)
使用红宝石的风格:
puts number if numbers.include?(number)
Run Code Online (Sandbox Code Playgroud)
我试过了:
print number if number in numbers
Run Code Online (Sandbox Code Playgroud)
但语法无效.
Python是Python,Ruby是Ruby.我的建议是不要尝试在另一个中写一个.
Python没有Ruby的/ Perl的"postfix if",而Pythonic的写法就是你已经得到的.
但如果你真的必须,这将有效:
if number in numbers: print number
Run Code Online (Sandbox Code Playgroud)
这是违反官方风格指南,PEP8,但:
通常不鼓励使用复合语句(同一行上的多个语句).
是:
Run Code Online (Sandbox Code Playgroud)if foo == 'blah': do_blah_thing() do_one() do_two() do_three()而不是:
Run Code Online (Sandbox Code Playgroud)if foo == 'blah': do_blah_thing() do_one(); do_two(); do_three()
python的语法是yes_value if test else no_value.为清晰起见,可选括号,您可以这样说:
print "Searching...", ("Found it" if n in numbers else "Not found")
Run Code Online (Sandbox Code Playgroud)
我同意,语法非常不直观.甚至C条件表达式也更容易阅读.