为什么“lines.upper()”在打印时不应用更改?

时间:2017-10-25 07:18:33

标签: uppercase

我在空闲文件中键入此代码,但在打印时,lines.upper()尚未应用于变量,为什么会这样,我该怎么办?

lines=input("type your text :")
lines.upper()
print(lines)

1 个答案:

答案 0 :(得分:1)

我假设您使用的是Python。然后你应该写这样的代码:

## {"upper", (PyCFunction)string_upper, METH_NOARGS, upper__doc__},

static PyObject *
string_upper(PyStringObject *self)
{
    char *s;
    Py_ssize_t i, n = PyString_GET_SIZE(self);
    PyObject *newobj;

    newobj = PyString_FromStringAndSize(NULL, n);
    if (!newobj)
        return NULL;

    s = PyString_AS_STRING(newobj);

    Py_MEMCPY(s, PyString_AS_STRING(self), n);

    for (i = 0; i < n; i++) {
        int c = Py_CHARMASK(s[i]);
        if (islower(c))
            s[i] = _toupper(c);
    }

    return newobj;
}

关于str.upper(),document解释说:

  

返回字符串的副本,并将所有已设置的字符转换为大写。

这意味着str.upper()不会自己更改变量,而是返回转换后的副本。我们可以从str.upper()的source code 确认这一点。

primaryID

即使您使用的是其他程序语言,也应该从官方文档或类似的地方找到答案。