Flag control variable
luke.geelen at gmail.com
luke.geelen at gmail.com
Tue Feb 11 14:01:05 EST 2014
Op dinsdag 11 februari 2014 19:51:40 UTC+1 schreef Peter Otten:
> luke.geelen at gmail.com wrote:
>
>
>
> > well i'm trying something else but no luck :
>
> >
>
> > #!bin/bash/python
>
>
>
> Hm.
>
>
>
> > import sys
>
> > import os
>
>
>
> For debugging purposes put the line
>
>
>
> print sys.argv
>
>
>
> here to see what arguments are passed to the script. When you type
>
>
>
> $ python script.py 2 * 2
>
>
>
> in the shell the "*" sign is replaced with all items in the current
>
> directory. To avoid that you have to escape, i. e. prepend a backslash:
>
>
>
> $ python script.py 2 \* 2
>
>
>
> To illustrate:
>
>
>
> $ touch one two three
>
> $ ls
>
> one three two
>
> $ python -c 'import sys; print sys.argv' 2 + 2
>
> ['-c', '2', '+', '2']
>
> $ python -c 'import sys; print sys.argv' 2 * 2
>
> ['-c', '2', 'one', 'three', 'two', '2']
>
> $ python -c 'import sys; print sys.argv' 2 \* 2
>
> ['-c', '2', '*', '2']
>
>
>
> > a = int(sys.argv[1])
>
> > sign = (sys.argv[2])
>
> > b = int(sys.argv[3])
>
> >
>
> > if sign == '+':
>
> > sum = a + b
>
> > print a, sign, b, "=", a + b
>
> > command1 = "sudo mpg321
>
> > 'http://translate.google.com/translate_tts?tl=en&q=%s_plus%s_equals%s'"
>
> > % (a, b, sum) os.system (command1)
>
> >
>
> > elif sign == "*":
>
> > sum = a * b
>
> > print a, sign, b, "=", a * b
>
> > command1 = "sudo mpg321
>
> > 'http://translate.google.com/translate_tts?tl=en&q=%s_times%s_equals%s'"
>
> > % (a, b, sum)
>
> >
>
> > when using * i get
>
> >
>
> > Traceback (most recent call last):
>
> > File "./math+.py", line 6, in <module>
>
> > b = int(sys.argv[3])
>
> > ValueError: invalid literal for int() with base 10:
>
> > 'Adafruit-Raspberry-Pi-Python-Code'
>
> >
>
> > i don't understand why b is a problem, it works fine with +
when using python script.py 2 \* 2
i get
Traceback (most recent call last):
File "math2.py", line 5, in <module>
sign = int(sys.argv[2])
ValueError: invalid literal for int() with base 10: '*'
More information about the Python-list
mailing list