您的位置:

几个python代码片段,用Python语言编写一小段代码

本文目录一览:

一个基础的PYTHON代码问题

你这个原始报错还是代码的缩进问题,不知道你用什么ide 来编辑运行代码的。

#百度知道这里的编辑是提供python代码格式的,如下:

def findMinAndMax(L): 

    #max = None

    #min = None  #will be error: TypeError: '' not supported between instances of 'NoneType' and 'int'

    #max = 0  # 如果都初始为0 最小值会不正确

    #min = 0  

    max = L[0]

    min = L[0]

    for n in L:

        if  min  n:

            min = n

        if  max  n:

            max = n

    return(min,max)

L = [4,5,10,9,7,12,21]

a,b = findMinAndMax(L)

print(a,b)

你的原始代码我跑成功了,另外,我修改了一些bug,min max 不能初始为None ,否则会报错。你可以测试下 :) ,, 有其他问题再交流。

求简洁优美的python代码例子、片段、参考资料

建议你去看一本书:《计算机程序的构造与解释》。里面用的语言是Scheme,一种Lisp的方言。通过这本书学习程序的抽象、封装,以及重要的函数式编程思想。等看完这本书以后,你在来写写Python代码,就知道如何让其简洁直观而又不失其可读性了。

同时,要让代码写得简洁,你也得熟悉Python本身,充分挖掘其能力。Python内建的几个高阶函数:map,reduce,filter,enumerate等等,lambda表达式,zip函数,以及标准库里强大的itertools、functools模块,都是函数式编程的利器。此外Python本身提供了许多非常好的语法糖衣,例如装饰器、生成器、*args和**kwargs参数、列表推导等等,也是简化代码的有效手段。还有,Python有着强大的库。多参考官方的文档了解其原理和细节,我相信你也能写出高效简洁的代码的。

其实代码的简洁没有什么捷径,它要求你了解你要解决的问题,所使用的语言和工具,相关的算法或流程。这些都得靠你自己不断地练习和持续改进代码,不断地专研问题和学习知识。加油吧,少年!

楼下让你参考PEP 20,其实不用去查,标准库里的this模块就是它(试试import this):The Zen of Python(Python之禅)。它就是一段话:

s='''

The Zen of Python, by Tim Peters

Beautiful is better than ugly.

Explicit is better than implicit.

Simple is better than complex.

Complex is better than complicated.

Flat is better than nested.

Sparse is better than dense.

Readability counts.

Special cases aren't special enough to break the rules.

Although practicality beats purity.

Errors should never pass silently.

Unless explicitly silenced.

In the face of ambiguity, refuse the temptation to guess.

There should be one-- and preferably only one --obvious way to do it.

Although that way may not be obvious at first unless you're Dutch.

Now is better than never.

Although never is often better than *right* now.

If the implementation is hard to explain, it's a bad idea.

If the implementation is easy to explain, it may be a good idea.

Namespaces are one honking great idea -- let's do more of those!

'''

让我们来做个小游戏吧:统计上面这段话的单词总数目,以及各个单词的数量(不区分大小写),然后按字典顺序输出每个单词出现的次数。要求,例如it's和you're等要拆分成it is和you are。你会怎么写代码呢?如何保持简洁呢?

下面是我的参考答案,争取比我写的更简洁吧~

import re

p = re.compile("(\w+)('s|'re|n't)?")

wc = {}

tail_map = { "'s" : 'is', "'re" : 'are', "n't": 'not'}

for m in re.finditer(p, s):

    word = m.group(1).lower()                   # Get the word in lower case

    wc[word] = wc.get(word, 0) + 1              # Increase word count

    tail = m.group(2)                           # Get the word tail

    if tail is not None:                        # If a word tail exists,

        tail = tail_map[tail]                   # map it to its full form

        wc[tail] = wc.get(tail, 0)+1            # Increase word count

print ('Total word count: %d'%sum(wc.values())) # Output the total count

max_len = max(map(len, wc.keys()))              # Calculate the max length of words for pretty printing

for w in sorted(wc.keys()):                     # Sort the words

    print ('%*s = %d'%(max_len, w, wc[w]))     # Output

python 读取多个csv文件中某一列,并生成一个新csv文件

csv文件应该是用逗号分隔得才对,否则怎么算作是csv文件。楼主你开玩笑吧。否则你这只是一个普通的文本文件。如果是真正的csv文件,我只说一点,python里面有csv模块,专门处理csv文件。如果是空格分割应该也可以,建议你,看一下python的csv模块的API,蛮简单的代码,其实如果不用的话自己写也可以。不是很复杂。代码片段如下:

def deal_file(file_in, file_out)

    with open(file_in, 'r') as f_in:

        with open(file_out, 'w') as f_out:

            for line in f_in:

                f_out.write(line.split(' ')[2] + '\n')

之后你可以将所有的输入文件放到一个列表里面,进行迭代调用这个函数就可以了。

【Python】有没有大佬懂下面这段代码思路?

这段代码的思路是先将所有字符按其ASCII值升序排序(list.sort(),关键步骤)

这样同样的字符就会排列在一起,再从头开始统计每段连续出现的字符及其个数

其中a=list[0]表示从头开始统计,a代表上一段连续出现的字符

第一个print()在else: 之后,表示遇到不一样的字符,上一段连续出现的字符终止

那么先print()上一段连续出现的字符及其个数,再重置a为新一段连续出现的字符

第二个print()在for循环之外,表示打印最后一段连续出现的字符及其个数

添加了注释的代码和运行结果如下:

关键在于先排序,再统计每段连续出现的字符,注意不要忘记最后一段~望采纳~