Python作业:字符串中点与取整相关代码问题求助
修复你的字符串处理代码问题
嘿,我看了你的代码,问题主要出在midpoint计算、字符串截取和标签拼接这几个步骤上,我帮你一步步修正过来:
先说说现有代码里的问题点:
midpoint = (string_length/2):普通除法/会得到浮点数(比如长度5的话会得到2.5),但我们需要向下取整的整数索引,得用整数除法//first_half= (midpoint):你直接把数值赋值给了first_half,而不是从user_input里截取前半部分字符串tagged_input= print ((tag) + (midpoint) + "/" + (tag)):这里犯了两个错,一是print函数返回None,不能赋值给变量;二是拼接格式完全不对,应该是<标签>内容</标签>的结构,而且不能直接把数值和字符串拼接
修正后的完整代码:
user_input = input("Please enter something: ") string_length = len(user_input) even_check = string_length % 2 if even_check > 0: print(f"The length is {string_length} characters long and is odd.") else: print(f"Your length is {string_length} characters long and is even.") tag = input("Input one of the following: h1, div or article: ") # 用整数除法//向下取整得到midpoint midpoint = string_length // 2 # 用字符串切片截取前半部分 first_half = user_input[:midpoint] # 按要求格式拼接标签和内容 tagged_input = f"<{tag}>{first_half}</{tag}>" # 打印最终结果 print(tagged_input)
关键修改说明:
- midpoint计算:用
string_length // 2代替/,确保得到整数(比如长度5时得到2,长度4时得到2),符合“向下取整”的要求 - 截取前半部分:
user_input[:midpoint]是Python字符串切片的用法,意思是从开头取到midpoint位置(不包含midpoint索引),正好是前半部分 - 标签拼接:用f-string格式化字符串,既简洁又保证格式正确,得到
<tag>first_half</tag>的结构,然后单独打印tagged_input,而不是把print的结果赋值给它
举个例子,如果用户输入HelloWorld(长度10,偶数),然后输入h1,输出会是:
Your length is 10 characters long and is even. <h1>Hello</h1>
内容的提问来源于stack exchange,提问作者mr.v
相关产品推荐
相关产品推荐

