Python在if語句中等同於&&(logical-and)

這是個人代碼: 測試

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

我在IF條件中遇到錯誤。 我究竟作錯了什麼? spa


#1樓

我選擇了一個簡單的數學解決方案: code

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:]

#2樓

你想要and不是&&get


#3樓

Python使用and / or條件。 數學

it

if foo == 'abc' and bar == 'bac' or zoo == '123':
  # do something

#4樓

兩條評論: io

  • 在Python中使用andor用於邏輯運算。
  • 使用4個空格來縮進而不是2.稍後你會感謝本身,由於你的代碼與其餘人的代碼看起來很是類似。 有關詳細信息,請參閱PEP 8

#5樓

也許用&而不是%更快和保持可讀性 bug

其餘測試偶數/奇數 解決方案

x是均勻的? x%2 == 0 co

x是奇數? 不是x%2 == 0

也許用bitwise和1更清楚

x是奇數? x&1

x是均勻的? 不是x&1(不是奇數)

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
相關文章
相關標籤/搜索