Python lower()函数不接受参数

Python lower()函数不接受参数,python,python-3.x,lowercase,Python,Python 3.x,Lowercase,我试图编写一个程序,从一个文件中提取一组名字和姓氏,然后打印一个用户名,这个用户名是名字的第一个字母和姓氏的其余字母的组合。示例:alexdoug将是adoug python解释器在uname=line.lower(first[0]+last[:7])上显示错误 TypeError lower()不接受任何参数(给定1) 是否有任何方法可以避免此错误,或者有任何其他方法可以避免此错误?下部功能不能以这种方式工作。如果要在python中将文本转换为小写,则必须执行以下操作: def main():

我试图编写一个程序,从一个文件中提取一组名字和姓氏,然后打印一个用户名,这个用户名是名字的第一个字母和姓氏的其余字母的组合。示例:
alex
doug
将是
adoug

python解释器在
uname=line.lower(first[0]+last[:7])
上显示错误

TypeError lower()不接受任何参数(给定1)


是否有任何方法可以避免此错误,或者有任何其他方法可以避免此错误?

下部功能不能以这种方式工作。如果要在python中将文本转换为小写,则必须执行以下操作:

def main():

    print("this program creates a file of usernames from a ")
    print("files of names ")
    # get the file names

    infilename = input("what files are the name in")
    outfilename = input("what file should the usernames go in")
    # open the files

    infile = open(infilename,'r')
    outfile = open(outfilename,'w')
    # process each line of the input file
    for line in infile.readlines():
        # get the first and last names from line
        first, last = line.split()
        # create the username
        uname = line.lower(first[0]+last[:7])
        # write it to the output file
        outfile.write(uname+'\n')
    # close both files
    infile.close()
    outfile.close()

    print("usernames have been written to : ", outfilename)

main()

如果写得正确,相关行可能如下所示:

string1 = "ABCDEFG"
string2 = string1.lower()
print(string2) # prints abcdefg
…或者更详细地说:

uname = (first[0]+last[:7]).lower()

值得注意的是,要用作输入的字符串是调用方法的对象;正如错误消息所说,没有其他参数。

你认为
行中的
是什么意思。lower(first[0]+last[:7])
的实际意思是/do?我想从名字中得到第一个字母,得到姓氏直到索引7,所以如果名字是4,姓氏是chan,结果将是fchanYes,但这说明了您使用
first
last
所做的操作,而不是使用名为
line
的变量所做的操作。为什么它是命令行的一部分。lower(first[0]+last[:7])
?line变量借助循环遍历文件中的每一行,然后使用split函数拆分名字和姓氏,给出错误的行基本上是生成用户名yes,但是这个变量在那条特定的线上意味着什么呢?你为什么把它包括在那里?显然,我知道它在句法上的意思。“我正试着梳理出你的理由。@ShadowRanger谢谢你的编辑,没有注意到是python 3
uname_unknown_case = first[0]+last[:7]
uname = uname_unknown_case.lower()