Agar o'qish bloki bo'lsa

Agar if iborasi ichida juda ko'p iboralar majmui mavjud. Balki, agar men blokni blokirovka bilan aniqlamagan bo'lsam ham, mening if gapimni ajratishga ruxsat berilmagan ko'rinadi. Men python haqida umumiy yangiliklar oldim, shuning uchun mening savolim bezovta bo'lsa kechirim so'rayman.

Ideal holda if/ ifodasini quyidagi tarzda tuzishni istayman:

if (expression1 and expression2) or
(
expression2 and
(
(expression3 and expression4) or 
(expression3 and expression5) or
(
expression4 and (expression6 or expression7)
)
):
    pass

Hozir hamma bir qatorda emas, balki juda ko'p ukish mumkin.

2
Siz butun parenximani butunlay o'rashingiz mumkin, lekin bu juda ko'p iboralar bir oz kod hidiga o'xshaydi.
qo'shib qo'ydi muallif Christian Dean, manba
BTW-ning oxirida parentezsiz qolasiz
qo'shib qo'ydi muallif Jean-François Fabre, manba
BTW-ning oxirida parentezsiz qolasiz
qo'shib qo'ydi muallif Jean-François Fabre, manba
Uni butunlay o'zgartirib ko'ring. O'zingiz tekshiradigan shartlarning har biriga nom berish uchun mahalliy o'zgaruvchiga yoki bir nechta qilib turing. Keyin siz uni sindirishingiz va uni bir vaqtning o'zida qisqartirishingiz va o'qiy olishingiz mumkin.
qo'shib qo'ydi muallif dsh, manba
Uni butunlay o'zgartirib ko'ring. O'zingiz tekshiradigan shartlarning har biriga nom berish uchun mahalliy o'zgaruvchiga yoki bir nechta qilib turing. Keyin siz uni sindirishingiz va uni bir vaqtning o'zida qisqartirishingiz va o'qiy olishingiz mumkin.
qo'shib qo'ydi muallif dsh, manba
Nima qilsang bo'lmasin, bu iboralar turkumi o'qiy mumkin.
qo'shib qo'ydi muallif Jim Fasarakis Hilliard, manba
Nima qilsang bo'lmasin, bu iboralar turkumi o'qiy mumkin.
qo'shib qo'ydi muallif Jim Fasarakis Hilliard, manba
switch korpusini sinab ko'ring; ref: python ekvivalenti nima? switch statement "> stackoverflow.com/questions/11479816/…
qo'shib qo'ydi muallif CSK, manba

6 javoblar

Birinchi satrda eski uslubda orqaga belgi qo'yishingiz mumkin, boshqalar bunga muhtoj emas, chunki siz parantez ishlatasiz:

if (expression1 and expression2) or \
(
expression2 and
(
(expression3 and expression4) or
(expression3 and expression5) or
(
expression4 and (expression6 or expression7)
)
)
):
    pass

Sizning namunangizni aniqlab olish kerakligini unutmang, chunki bitta yopilgan parantez yo'q.

3
qo'shib qo'ydi

Birinchi satrda eski uslubda orqaga belgi qo'yishingiz mumkin, boshqalar bunga muhtoj emas, chunki siz parantez ishlatasiz:

if (expression1 and expression2) or \
(
expression2 and
(
(expression3 and expression4) or
(expression3 and expression5) or
(
expression4 and (expression6 or expression7)
)
)
):
    pass

Sizning namunangizni aniqlab olish kerakligini unutmang, chunki bitta yopilgan parantez yo'q.

3
qo'shib qo'ydi

Bir nechta satrlarda sizning ifodangiz bo'lishi uchun \ dan foydalaning, ko'proq o'qib chiqish uchun uni aniqlab olishingiz mumkin:

if (expression1 and expression2) or \
(expression2 and \
    (\
    (expression3 and expression4) or \
    (expression3 and expression5) or \
        ( \
         expression4 and (expression6 or expression7) \
         )\
         ):
    pass
1
qo'shib qo'ydi
Sizning huquqingiz, yomonligim. Fikrimni olib tashlayman.
qo'shib qo'ydi muallif Christian Dean, manba
Buning sababi shundaki, OP bizni noto'g'ri ishlatish uchun sintaksik xatoni qoldirdi (bitta yopuvchi parentezni qoldirib yubordi).
qo'shib qo'ydi muallif Jean-François Fabre, manba

Bir nechta satrlarda sizning ifodangiz bo'lishi uchun \ dan foydalaning, ko'proq o'qib chiqish uchun uni aniqlab olishingiz mumkin:

if (expression1 and expression2) or \
(expression2 and \
    (\
    (expression3 and expression4) or \
    (expression3 and expression5) or \
        ( \
         expression4 and (expression6 or expression7) \
         )\
         ):
    pass
1
qo'shib qo'ydi
Sizning huquqingiz, yomonligim. Fikrimni olib tashlayman.
qo'shib qo'ydi muallif Christian Dean, manba
Buning sababi shundaki, OP bizni noto'g'ri ishlatish uchun sintaksik xatoni qoldirdi (bitta yopuvchi parentezni qoldirib yubordi).
qo'shib qo'ydi muallif Jean-François Fabre, manba

Python ko'p satrli jadvalga ruxsat berishning bir necha yo'llari bor. Sizning holatlaringizda, agar siz butun holda kvadratchada joylashtirsangiz:

if ((expression1 and expression2) or
(
expression2 and
(
(expression3 and expression4) or 
(expression3 and expression5) or
(
expression4 and (expression6 or expression7)
)
)):
    pass

Shuni ta'kidlash kerakki, bu ko'pgina shartlar if kodi ifodasi menga bir oz kod hid kabi ko'rinadi. Ehtimol, ba'zi bir mantiqni inaktivalash yoki ko'p if so'zlari yordamida yordamchi vazifalarni yaratishni ko'rib chiqing.

1
qo'shib qo'ydi

buni amalga oshirishingiz mumkin:

t1_2=(expression1 and expression2)
t3_4=(expression3 and expression4)
t3_5=(expression3 and expression5)
t6_7=(expression6 or expression7)
if test1 or(expression2 and (t3_4 or t3_5 or(expression4 and t6_7)):
    pass
0
qo'shib qo'ydi
Python
Python
372 ishtirokchilar

Bu guruh python dasturlash tilini muhokama qilish uchun. Iltimos, o'zingizni hurmat qiling va faqat dasturlash bo'yicha yozing. Botlar mavzusini @botlarhaqida guruhida muhokama qling! FAQ: @PyFAQ Offtopic: @python_uz_offtopic

Python offtopic group !
Python offtopic group !
150 ishtirokchilar

@python_uz gruppasining offtop gruppasi. offtop bo'lsa ham reklama mumkin emas ) Boshqa dasturlash tiliga oid gruppalar @languages_programming