以现有功能为基础

时间:2016-11-17 15:19:11

标签: python function

我只是玩弄函数以便进一步理解它们,我很好奇,是否可以使用以下函数返回用户名和最后一个初始函数而不添加任何其他函数?

name = raw_input("Please enter your full name: ")

def username(a):
    print(a[0:6]+a[-1])
username(name)

4 个答案:

答案 0 :(得分:0)

您当前的函数采用名字和姓氏的长度。你可以试试 print(a.split()[0] +'' + a.split()[1] [0])。 split()会将字符串更改为两个元素的列表,元素0是第一个名称,元素1是姓氏。

a [-1]会给你字符串的最后一个字母,听起来你不希望这个字符用于你的目的。

答案 1 :(得分:0)

如果输入名称的长度可能会有所不同,那么您必须使用另一个函数splitindex。如果用户只需输入一个名称,您就需要添加iftry...except

a[:a.index(' ')])将从输入的开头到第一个空格

获得名字
  如果找不到该字符,则

index会返回ValueError,如果他们可能只输入名字环绕,请尝试使用...

a.split()[-1][0]将获得姓氏的第一个字母,即使他们输入两个以上的名字(Billy Bob Joe - > Billy J)

name = raw_input("Please enter your full name: ")

def username(a):
    print(a[:a.index(' ')]+' '+a.split()[-1][0])
username(name)

答案 2 :(得分:0)

name = raw_input("Please enter your full name: ")                                                                                                                                  

def username(a):                                                                                                                                                                   
    fullname = a.strip().split(' ')                                                                                                                                                

    if len(fullname) < 2:                                                                                                                                                          
        print('Error: last name required')                                                                                                                                         
        print('Type: firstname <middle name> last name')                                                                                                                           
        exit(1)                                                                                                                                                                    

    try:                                                                                                                                                                           
        print('%s %s' % (fullname[0], fullname[-1][0]))                                                                                                                            

    except IndexError:                                                                                                                                                             
        exit(1)                                                                                                                                                                    

username(name) 

答案 3 :(得分:0)

这就是我设法实现你们所提供给我的信息的方式。

'''
code to input full name and convert into username consisting of first + first
initial of last name or first and first initial of first name if input is one name.
'''
def fullname():
    name = raw_input("Please enter your full name: ").lower()
    try:
        name = (name[:name.index(' ')]+''+name.split()[len(name.split())-1][0])
    except:
        name = name[0:]+name[0]
    return name

# code to generate exponential numbers
def print_exponential():
    base = int(raw_input("Please select a base number: \n"))
    power = int(raw_input("Please select a power number: \n"))
    exponential = 1
    while power>0:
        exponential = exponential * base
        print base
        if power >1:
            print "*"
        power = power -1
    print "=%d" % exponential



'''
code to generate interactive menu with an error return for incorrect selection and exit clause.
'''
ans=True
while ans:
    print ("""
    U.Create a Username
    E.Run Exponential Calculator
    Q.Exit/Quit
    """)
    ans=raw_input("What would you like to do? ").upper()
    if ans=="U": 
      print fullname()
    elif ans=="E":
      print print_exponential()
    elif ans=="Q":
      print("\n Goodbye")
      break
    elif ans !="":
      print("\n Error: Choice must be U, E or Q")