Python 接受字符串并返回前半部分小写和后半部分大写的def

Python 接受字符串并返回前半部分小写和后半部分大写的def,python,Python,我是python新手,需要帮助清理我的代码 我必须定义一个字符串,并返回前半部分小写和第二部分大写 这是我的代码——但我忍不住认为有更干净的方法来编写它 def sillycase(string): x = len(string)/2 y = round(x) print (string[:y].lower() + string[y:].upper()) 它看起来已经很好了,但正如前面提到的,它没有返回任何东西。这个怎么样 def sillycase(string):

我是python新手,需要帮助清理我的代码

我必须定义一个字符串,并返回前半部分小写和第二部分大写

这是我的代码——但我忍不住认为有更干净的方法来编写它

def sillycase(string):
    x = len(string)/2
    y = round(x)
    print (string[:y].lower() + string[y:].upper())

它看起来已经很好了,但正如前面提到的,它没有返回任何东西。这个怎么样

def sillycase(string):
    y = round(len(string)/2)
    return string[:y].lower() + string[y:].upper()

正如我在评论中提到的,您当前的方法返回
None
。如果您只是打印出值,那么实际上并不是
将任何内容返回给调用者

但最终,这一问题可以得到很大的解决。如果改用
格式
,则不必担心连接问题。此外,如果您处理整数除法,它总是向下取整到最接近的整数-因此调用
round
没有任何好处。双斜杠
/
操作符强制执行该行为,因此它在Python版本之间的工作方式相同

def sillycase(s):
    half = len(s)//2
    return "{}{}".format(s[:half].lower(), s[half:].upper())

循序渐进。首先,如何从函数返回值

def return_True():
    return True

def return_half(x):
    return x/2
第二,你如何从一根绳子中拉出碎片

In [1]: "abc"[:2]
Out[1]: "ab"

In [2]: "abc"[2:]
Out[2]: "c"
In [1]: "TeSt".upper()
Out[1]: "TEST"

In [2]: "TeSt".lower()
Out[2]: "test"
第三,如何从除法中得到整数

In [1]: 5/2
Out[1]: 2.5  # 2 in Python2, but don't rely on that

In [2]: 5//2
Out[2]: 2    # in both Python2 and Python3
第四,如何处理字符串的大小写

In [1]: "abc"[:2]
Out[1]: "ab"

In [2]: "abc"[2:]
Out[2]: "c"
In [1]: "TeSt".upper()
Out[1]: "TEST"

In [2]: "TeSt".lower()
Out[2]: "test"
最后,让我们把它们放在一起:

def sillycase(s):
    mid_point = len(s) // 2
    first_half = s[:midpoint]
    second_half = s[midpoint:]
    return first_half.lower() + second_half.upper()

嗯……首先,它返回了
None
。。。