【发布时间】:2017-04-23 01:08:32
【问题描述】:
我如何写letter = sys.argv[2] or 'a',这样如果a 中没有传递参数,就会分配给字母。 所以基本上我希望letter 的默认值是@987654325 @ 除非有东西传入。如果要传入东西,我希望将其分配给letter
这是我的简单程序:
$ cat loop_count.py
import sys
def count(word,letter):
for char in word:
if char == letter:
count = count + 1
return count
# WHAT I WANT
word = sys.argv[1] or 'banana' # if sys.argv[1] has a value assign it to word, else assign 'banana' to word
letter = sys.argv[2] or 'a' # if sys.argv[2] has a value assign it to letter, else assign 'a' to letter
print 'Count the number of times the letter',letter,' appears in the word: ', word
count = 0
for letter in word:
if letter == 'a':
count = count + 1
print count
这是我通过传递两个参数pea 和a 来运行程序
$ python loop_count.py pea a
Count the number of times the letter a appears in the word: pea
1
我希望参数是可选的,所以我希望不必传递字母argumentmt。 那么我该如何写letter = sys.argv[2] or 'a',这样如果没有传入的参数,字母就会分配给a
这是我运行的程序只有一个参数,我希望参数是可选的。
$ python loop_count.py pea
Traceback (most recent call last):
File "loop_count.py", line 10, in <module>
letter = sys.argv[2] or 'a'
IndexError: list index out of range
【问题讨论】:
标签: python