Skip to main content
 首页 » 编程设计

python之如何在 python 中返回字符串中的空格索引

2025年05月04日52davidwang456

我正在为 CS 课上的练习编写一个函数。 但我不知道为什么会出现此错误: 相同的代码在没有功能的情况下工作。我尝试搜索如何在字符串中找到“空白”的索引,但找不到任何内容。练习的目的是返回用户输入的全名,从名字和姓氏中删除一个随机字母。 (这是“假设”用户输入的全名包含两部分) 谢谢

Enter your Full name: Emily Watson 
Traceback (most recent call last): 
  File "cs_lec7_char_shuffle_ex.py", line 33, in <module> 
    version1 = remove_two_letters(full_name) 
  File "cs_lec7_char_shuffle_ex.py", line 16, in remove_two_letters 
    gap_pos = full_name.find(" ")                     
AttributeError: 'NoneType' object has no attribute 'find' 
 
***Repl Closed*** 
 
import random 
 
def get_full_name(): 
 
    full_name = input("Enter your Full name: ") 
 
def remove_two_letters(full_name): 
 
    gap_pos = full_name.find(" ")                     
    name_length = len(full_name)                     
 
    first_name = full_name[0:gap_pos]                
    sur_name = full_name[gap_pos+1:name_length] 
 
    first_random_pos = random.randrange(1,gap_pos)   
    sur_random_pos = random.randrange(gap_pos+1, name_length) 
 
    first_name = first_name.replace(full_name[first_random_pos],"",1)     
    sur_name = sur_name.replace(full_name[sur_random_pos],"",1)          
 
    removed_name = first_name + " " + sur_name 
 
    return removed_name 
 
full_name = get_full_name() 
version1 = remove_two_letters(full_name) 
 
print(version1) 

请您参考如下方法:

你已经在 get_full_name() 的本地命名空间中定义了 full_name,如果你想在其他地方使用它,你需要返回它:

def get_full_name(): 
 
    full_name = input("Enter your Full name: ") 
    return  full_name 

这就是您遇到的 AttributeError 因为您的函数返回 None 并且您将 None 传递给 remove_two_letters。