Python Forum

Full Version: Python if else condition using with args
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I want to use if else condition with arguments.Main codes at part 1
And i want to divide each arg to 10 and put args in if else condition.If else try part 2
How can i write if else condition using with args?
Part1
   def acc_callback(self, path, args):
       acc_x, acc_y, acc_z = args
       print "%s %f %f %f" % (path, acc_x, acc_y, acc_z)
Part2
   If(acc_x/10>40): 
   Print " bigger"
   Else:
   Print "smaller"
There is no "else with arguments" (never met any language with such a concept). What you have is if/elif/else if you want to perform several tests:

if condition1:
   ## code executed if condition1 is true
elif condition2:
   ## code executed if condition1 is false and condition2 is true
elif condition3:
   ## code executed if condition1 and condition2 are false and condition3 is true
else:
   ## code executed when all conditions above are false
first of all, the way you have args in your code, it will expect single object - list, tuple, etc., i.e. some data structure.

If I understand you correctly, you want to loop over all elements in args:

# python3 code
for arg in args:
    if arg/10 > 40:
        print('bigger')
    else:
        print('smaller')
(Jun-15-2017, 10:19 AM)buran Wrote: [ -> ]first of all, the way you have args in your code, it will expect single object - list, tuple, etc., i.e. some data structure.

If I understand you correctly, you want to loop over all elements in args:

# python3 code
for arg in args:
    if arg/10 > 40:
        print('bigger')
    else:
        print('smaller')

Thanks.You divide all args to 10.If i use each arg in different process,what can ido?e.g my args are :x y and z.i will divide x to 10 but divide y to 20...
(Jun-15-2017, 06:42 PM)emrebt39 Wrote: [ -> ]You divide all args to 10.If i use each arg in different process,what can ido?e.g my args are :x y and z.i will divide x to 10 but divide y to 20...

but in the OP

(Jun-14-2017, 08:58 PM)emrebt39 Wrote: [ -> ]And i want to divide each arg to 10 and put args in if else condition.If else try part 2

maybe you should decide what you want first :-)

this is very broad - it depends what your overall goal is. most simple - make separate if for each arg, but I would do something like this


args = [5000, 200, 70000]
divisors = [10, 20, 25]
benchmarks = [40, 20, 60]

for arg, divisor, benchmark in zip(args, divisors, benchmarks):
    print('{} / {} = {} :: benchmark {}'.format(arg, divisor, arg/divisor, benchmark))
    if arg/divisor > benchmark:
        print('bigger')
    else:
        print('smaller')
Output:
5000 / 10 = 500.0 :: benchmark 40 bigger 200 / 20 = 10.0 :: benchmark 20 smaller 70000 / 25 = 2800.0 :: benchmark 60 bigger
(Jun-15-2017, 07:43 PM)buran Wrote: [ -> ]
(Jun-15-2017, 06:42 PM)emrebt39 Wrote: [ -> ]You divide all args to 10.If i use each arg in different process,what can ido?e.g my args are :x y and z.i will divide x to 10 but divide y to 20...
but in the OP
(Jun-14-2017, 08:58 PM)emrebt39 Wrote: [ -> ]And i want to divide each arg to 10 and put args in if else condition.If else try part 2
maybe you should decide what you want first :-) this is very broad - it depends what your overall goal is. most simple - make separate if for each arg, but I would do something like this
args = [5000, 200, 70000] divisors = [10, 20, 25] benchmarks = [40, 20, 60] for arg, divisor, benchmark in zip(args, divisors, benchmarks): print('{} / {} = {} :: benchmark {}'.format(arg, divisor, arg/divisor, benchmark)) if arg/divisor > benchmark: print('bigger') else: print('smaller')
Output:
5000 / 10 = 500.0 :: benchmark 40 bigger 200 / 20 = 10.0 :: benchmark 20 smaller 70000 / 25 = 2800.0 :: benchmark 60 bigger

Thank you Buran.You are guru :)