需要更优雅的解决方案来解决字符串长度问题
Need more elegant solution to even string length
这是我接到的任务:
给定一个偶数长度的字符串,return前半部分。所以字符串 "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中:
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
功能。
您是否正在寻找这样的东西:
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]
这很含糊,因为您没有解释在提供不均匀长度的字符串时该怎么做。
在python中:
str = "WooHoo"
str = str[:-len(str)/2]
这是最简单直接的解决方案。
运行直到字符串的中间,这里,//
用来确认我除法后只得到int值,以防长度是奇数。
def first_half(str):
return str[:(len(str)//2)]
def first_half(str):
calc = len(str) / 2
if calc:
return str[:calc]
else:
if len(str) <= 0:
return str
first_half('abcdef')
这是我接到的任务:
给定一个偶数长度的字符串,return前半部分。所以字符串 "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中:
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
功能。
您是否正在寻找这样的东西:
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]
这很含糊,因为您没有解释在提供不均匀长度的字符串时该怎么做。
在python中:
str = "WooHoo"
str = str[:-len(str)/2]
这是最简单直接的解决方案。
运行直到字符串的中间,这里,//
用来确认我除法后只得到int值,以防长度是奇数。
def first_half(str):
return str[:(len(str)//2)]
def first_half(str):
calc = len(str) / 2
if calc:
return str[:calc]
else:
if len(str) <= 0:
return str
first_half('abcdef')