Ibora va instuksiyalarda bo‘sh joylarning ahamiyati
Quyidagi holatlarda bo‘sh joy belgisini qo‘llashdan saqlaning
Bevosita dumaloq, kvadratli va figurali qavslarning ichida:
To‘g‘ri:
spam(ham[1], {eggs: 2})
Xato:
spam(ham[ 1 ], { eggs: 2 })
Bevosiya vergul, nuqtali vergul yoki ikki nuqta oldida:
To‘g‘ri:
if x == 4: print(x, y); x, y = y, x
Xato:
if x == 4 : print(x , y) ; x , y = y , x
79
Funksiyalarga murojaat qilinayotganda argument yozilishi kerak bo‘lgan qavslarni ochish-dan oldinda:
To‘g‘ri:
spam(1)
Xato:
spam (1)
Indeks yoki kesim yozilishi kerak bo‘lgan qavsning ochilishidan oldinda:
To‘g‘ri:
dict['key'] = list[index]
Xato:
dict['key'] = list[index]
O‘zlashtirish (yoki boshqa ixtiyoriy) operatori atrofida boshqalari bilan tekislash maqsadi-da bittadan ortiq bo‘sh joyni ishlatishda:
To‘g‘ri:
long_variable = 3
Xato:
long_variable = 3
Boshqa tavsiyalar
Har doim quyidagi operatorlarni ikkala tomonidan bittadan bo‘sh joy bilan qamrab oling: o‘zlashtirish (=, +=, -= va boshqalar), taqqoslash (==, <, >, !=, <>, <=, >=, in, not in, is, is not) va mantiqiy (and, or, not).
Agar turli ustunlikka ega operatorlardan foydalanayotgan bo‘lsangiz, u holda eng past ustunlikka ega operator atrofiga bo‘sh joylarni qo‘shishga harakat qiling. O‘zingiz mustaqil fikr yuriting, lekin hech qachon 1 tadan ortiq bo‘sh joyni qo‘llamang hamda binar opera-torlarning ikkala tomonida ham bir xil sondagi bo‘sh joylarni qo‘llang:
80
To‘g‘ri:___def_complex(real,_imag=0.0):_return_magic(r=real,_i=imag)_Xato'>To‘g‘ri:
i = i + 1
submitted += 1
x = x*2 - 1
hypot2 = x*x + y*y
c = (a+b) * (a-b)
Xato:
i=i+1
submitted +=1
x = x * 2 - 1
hypot2 = x * x + y * y
c = (a + b) * (a - b)
Agar = belgisi nomlangan argument yoki parametrlarning odatiy qiymatlarini ko‘rsatish uchun qo‘llanilayotgan bo‘lsa, u holda uning atrofida bo‘sh joydan foydalanmang:
To‘g‘ri:
def complex(real, imag=0.0):
return magic(r=real, i=imag)
Xato:
def complex(real, imag = 0.0):
return magic(r = real, i = imag)
Tarkibiy ko‘rsatmalardan foydlanmang (bir qatorda bir necha buyruqdan):
To‘g‘ri:
if foo == 'blah':
do_blah_thing()
do_one()
do_two()
do_three()
Xato:
if foo == 'blah': do_blah_thing()
do_one(); do_two(); do_three()
Ba’zida while va for takrorlashlar tanalarini yoki if tarmog‘ini, agar ular qisqa ko‘rinish-da bo‘lsa, shu satrning o‘zida ham yozish mumkin, lekin buyruqlar bir nechta bo‘lsa, hech qachon bunday yozmang. Bundan tashqari juda uzun satrlardan foydalanmaslikka harakat qiling.
81
Xato ekanligi aniq:
if foo == 'blah': do_blah_thing()
for x in lst: total += x
while t < 10: t = delay()
Xato bo‘lishi mumkin
if foo == 'blah': do_blah_thing()
else: do_non_blah_thing()
try: something()
finally: cleanup()
do_one(); do_two(); do_three(long, argument, list, like, this)
if foo == 'blah': one(); two(); three()
Do'stlaringiz bilan baham: |