这是我得到的任务:
给定长度相等的字符串,返回前半部分。所以字符串"WooHoo"产生"Woo"。
first_half('WooHoo') → 'Woo'
first_half('HelloThere') → 'Hello'
first_half('abcdef') → 'abc'
这是我的解决方案:
def first_half(str):
if len(str) % 2 == 0:
b = len(str) // 2
return str[:b]
我的问题是:
你能给我看一个更简单的Python解决方案吗?当然,它不需要我为一半的字符串长度(b(使用变量?
在python中:
str = "WooHoo"
str = str[:-len(str)/2]
在python中:
return str[0: int(len( str )/2)];
这里不需要检查它的长度是偶数还是奇数。len( str )/2
将自身取整。
在问题重新编辑之前回答了以下问题:
在Javascript中:
var str = "WooHoo";
if (str.length%2 == 0) {
console.log(str.substr(0, str.length / 2));
}
答案是Woo
。
或者只使用:
str.substr(0, str.length / 2);
无需检查if (str.length%2 == 0)
。
其他语言也具有length
属性和substring
函数。
这里是最简单直接的解决方案
运行到字符串的中间,这里,//
用于确认我在除法后只得到int值,以防长度为奇数。
def first_half(str):
return str[:(len(str)//2)]
你在寻找这样的东西吗:
def first_half(str):
if len(str) % 2 == 0:
return str[:len(str) // 2]
或者像这样?
def first_half(str):
return str[:len(str) // 2 if len(str) % 2 == 0 else 0]
这是相当模糊的,因为您还没有解释当提供长度不均匀的字符串时该怎么办。
def first_half(str):
calc = len(str) / 2
if calc:
return str[:calc]
else:
if len(str) <= 0:
return str
first_half('abcdef')