python 不知道思路哪里错

逆转字符串 我的思路如下 但是不知道哪里出了错 python 思路就是 一个空字符串接受字符串传过来的

img

img

def reverse(s):
        ns=' '
        i,j=0,-1:
        while i<len(s):
                ns[i]=s[j]
                i=i+1
                j=j-1
        return ns

思路没问题,但python里的字符串是不可修改的对象,所以不能通过索引为ns这个字符串赋值。如果沿用你的思路,可以把ns配置成一个与要翻转的字符串s等长的列表,函数返回的时候再把ns通过join方法转成字符串。

def reverse(s):
    ns = [""]*len(s)
    i, j = 0, -1
    while i < len(s):
        ns[i] = s[j]
        i += 1
        j -= 1
    return "".join(ns)

其实更简单的办法就是逆向切片,一行代码完事

def reverse(s):
    return s[::-1]

你可以这样做:

def reverse():
    ns = "abc"
    ns_list = list(ns)
    i, j = 0, -1
    while i < len(ns_list) // 2:
        ns_list[i], ns_list[j] = ns_list[j], ns_list[i]
        i = i + 1
        j = j - 1
    ns_reverse = ''.join(ns_list)
    print(ns_reverse)

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7749001
  • 这篇博客也不错, 你可以看下python在字典中创建一键多值的几种方法以及从其他数据结构转为一键多值的字典几种方法
  • 同时,你还可以查看手册:python- 格式化字符串字面值 中的内容
  • 除此之外, 这篇博客: 从做核酸采集的角度了解Python读取文件的几种方法中的 停车场空间不够时怎么办? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 方法二:边读边处理

    一般来说,由于停车场空间有限,我们不会采用一次性把所有学生都叫到停车场中,而是会一个一个地处理,这样可以节约内存空间。

    import time
    from typing import Iterator
    
    
    def pick_one_student(dorm: str) -> Iterator[str]:
        with open(dorm, "rt", encoding="utf8") as fin:
            for student in fin:
                yield student
    
    
    def pick_sample(student: str) -> str:
        time.sleep(0.01)
        sample = f"{student.strip()}'s sample"
        return sample
    
    
    def process(dorm: str, sample_storeroom: str) -> None:
        with open(sample_storeroom, "wt", encoding="utf8") as fout:
            for student in pick_one_student(dorm):
                sample = pick_sample(student)
                fout.write(f"{sample}\n")
                fout.flush()
    
    
    if __name__ == "__main__":
        process(
            "student_names.txt",
            "sample_storeroom.txt"
        )

    这里pick_one_student函数中的返回值是用yield返回的,一次只会返回一名同学。

    不过,这种做法虽然确保了停车场不会满员,但是这种做法在人数特别多的时候就不再适合了。虽然可以保证完成任务,但由于每次只能采集一个同学,程序的执行并不高。特别是当你的CPU有多个核时,会浪费机器性能,出现一核有难,其它围观的现象。

  • 您还可以看一下 jeevan老师的Python量化交易,大操手量化投资系列课程之内功修炼篇课程中的 编程语言之Python环境安装小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    由于题目中没有给出具体的代码,我无法查看原始代码的错误,但是给出一份通用的Python字符串逆转代码和优化建议供参考。

    代码如下:

    def reverse_string(s):
        reversed_s = ""
        for i in range(len(s)-1, -1, -1):
            reversed_s += s[i]
        return reversed_s
    

    这是一个通用的Python字符串逆转函数,接收一个字符串作为参数,返回逆转后的结果。

    优化建议:

    1. 可以使用Python内置的字符串翻转方法reverse()来简化代码,如下所示:
    def reverse_string(s):
        return s[::-1]
    
    1. 在循环构建新的字符串时,可以使用join()方法来提高效率,如下所示:
    def reverse_string(s):
        return ''.join(reversed(s))
    

    最终代码和测试样例如下:

    def reverse_string(s):
        return ''.join(reversed(s))
    
    # 测试样例
    print(reverse_string("hello"))  # 输出olleh
    print(reverse_string("Python is awesome"))  # 输出emosewa si nohtyP
    

    输出结果:

    olleh
    emosewa si nohtyP