Eyniləşdirmə Python (məntiqi-i) if ifadəsində

İşdə kodum:

 # F. front_back # Consider dividing a string into two halves. # If the length is even, the front and back halves are the same length. # If the length is odd, we'll say that the extra char goes in the front half. # eg 'abcde', the front half is 'abc', the back half 'de'. # Given 2 strings, a and b, return a string of the form # a-front + b-front + a-back + b-back def front_back(a, b): # +++your code here+++ if len(a) % 2 == 0  len(b) % 2 == 0: return a[:(len(a)/2)] + b[:(len(b)/2)] + a[(len(a)/2):] + b[(len(b)/2):] else: #todo! Not yet done. :P return 

Şərti ifadədə bir səhv alıram. Yanlış etdiyim nədir?

481
21 марта '10 в 4:23 2010-03-21 04:23 21 mart '10 'da 4:23' da silinəcək 2010-03-21 04:23
@ 8 cavab

Sizə and əvəzinə > lazımdır.

855
21 марта '10 в 4:25 2010-03-21 04:25 ChristopheD tərəfindən verilmiş cavab 21 Mart '10 'da 4:25' da 2010-03-21 04:25

Python, və or konvensiyalardan istifadə edir.

yəni.

border=0
 if foo == 'abc' and bar == 'bac' or zoo == '123': # do something 
143
21 марта '10 в 4:26 2010-03-21 04:26 21 mart 2010- cu il tarixində saat 04:26 da David Titarenco'ya cavab verdi

İki şərh:

  • Python istifadə andor məntiqi əməliyyatlar üçün.
  • 2 yerinə girmək üçün 4 boşluq istifadə edin. Kodunuzu hər kəslə eyni görünəcək, çünki daha sonra özünüzə təşəkkür edirəm. Ətraflı məlumat üçün PEP 8-ə baxın.
25
21 марта '10 в 4:35 2010-03-21 04:35 Cavab 21 mart, '10 'da 4: 35' da qışqırıq verilir. 2010-03-21 04:35

Mən olduqca riyazi həlli ilə getdim:

 def front_back(a, b): return a[:(len(a)+1)//2]+b[:(len(b)+1)//2]+a[(len(a)+1)//2:]+b[(len(b)+1)//2:] 
9
10 июня '14 в 22:10 2014-06-10 22:10 cavab 10 iyun 'da 10:10 ' da Böyük Qırmızı tərəfindən verilir. 2014-06-10 22:10

Bəlkə də bu, bu vəzifənin ən yaxşı kodu deyil, amma işləyir -

 def front_back(a, b): if len(a) % 2 == 0 and len(b) % 2 == 0: print a[:(len(a)/2)] + b[:(len(b)/2)] + a[(len(a)/2):] + b[(len(b)/2):] elif len(a) % 2 == 1 and len(b) % 2 == 0: print a[:(len(a)/2)+1] + b[:(len(b)/2)] + a[(len(a)/2)+1:] + b[(len(b)/2):] elif len(a) % 2 == 0 and len(b) % 2 == 1: print a[:(len(a)/2)] + b[:(len(b)/2)+1] + a[(len(a)/2):] + b[(len(b)/2)+1:] else : print a[:(len(a)/2)+1] + b[:(len(b)/2)+1] + a[(len(a)/2)+1:] + b[(len(b)/2)+1:] 
6
25 мая '11 в 11:33 2011-05-25 11:33 Nasimuddin Ansari tərəfindən 25 May 'da 11:33' də cavab verilir 2011-05-25 11:33

Mantıksal əməliyyatları, məsələn, C, C ++ istifadə etmək or istifadə etmək. > necə and > , və or - || .


Bu məzəli nümunəyə nəzər salın,

Pythonda mantıksal bir qapı qurmaq istəyirsən:

 def AND(a,b): return (a and b) #using and operator def OR(a,b): return (a or b) #using or operator 

İndi onları zəng edin:

 print AND(False, False) print OR(True, False) 

Bu nəticəyə gətirib çıxaracaq:

 False True 

Bu kömək edir!

4
12 нояб. Geekidharsh tərəfindən verilmiş cavab 12 Noyabr. 2016-11-12 03:58 '16 'da 3:58' də 2016-11-12 03:58

Şərti ifadədə "və" istifadə edin. Jupyter Notebooku idxal edərkən tez-tez istifadə edirəm:

 def find_local_py_scripts(): import os # does not cost if already imported for entry in os.scandir('.'): # find files ending with .py if entry.is_file() and entry.name.endswith(".py") : print("- ", entry.name) find_local_py_scripts() - googlenet_custom_layers.py - GoogLeNet_Inception_v1.py 
-1
04 февр. Cavab Uki D. Lucas tərəfindən verildi 04 Fevral. 2017-02-04 03:46 '17 də 3:46 2017-02-04 03:46

bəlkə də, əvəzinə, oxumaq üçün daha sürətli və daha asandır

digər testlər tək / təkdir

X mi? x% 2 == 0

X odd? x% 2 == 0

bir-bir və bir daha aydın ola bilər

X odd? x və 1

X mi? x və 1 (tək)

 def front_back(a, b): # +++your code here+++ if not len(a)  1 and not len(b)  1: return a[:(len(a)/2)] + b[:(len(b)/2)] + a[(len(a)/2):] + b[(len(b)/2):] else: #todo! Not yet done. :P return 
-1
24 авг. cavab Wirefall 24 aug verilir . 2014-08-24 16:21 '14 at 4:21 pm 2014-08-24 16:21