python学习笔记之一(.py文件里输入中文报错)
admin
2023-07-31 01:51:34
0

教程

1、python大小写敏感
如果字符串里面有很多字符都需要转义,就需要加很多\\,为了简化,Python还允许用r\’\’表示\’\’内部的字符串默认不转义

>>> print \'\\\\\\t\\\\\'
\\       \\
>>> print r\'\\\\\\t\\\\\'
\\\\\\t\\\\

如果字符串内部有很多换行,用\\n写在一行里不好阅读,为了简化,Python允许用\’\’\’…\’\’\’的格式表示多行内容

>>> print \'\'\'line1
... line2
... line3\'\'\'
line1
line2
line3

注意:.py文件里输入中文,然后在解析器执行文件,发现报错。

解决办法:在文件头部加上#coding:utf-8

如果设置为gbk则不行,原因很简单,我用的编辑器的编码为utf-8,所以我保存的文件自动为utf-8,如果文件的头部设置为gbk编码的话,那么解析器去解析时用gbk解析,所以会报错。

3、python 有序集合(list)

如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素

>>> classmates[-1]
\'Tracy

*另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改

循环是让计算机做重复任务的有效的方法,有些时候,如果代码写得有问题,会让程序陷入“死循环”,也就是永远循环下去。这时可以用Ctrl+C退出程序,或者强制结束Python进程。

4、空函数
如果想定义一个什么事也不做的空函数,可以用pass语句:

def nop():
    pass

空函数可以作为占位符,此时不定义,可以在以后定义。比如我们可以这样使用它:

if a>12:
    pass

5、定义一个函数

import math
def move(x,y,step,radius):
    x1 = x + step * math.cos(radius)
    y1 = y - step * math.sin(radius)
    return x1,y1

print move(2,3,4,20)

总结:定义函数时,需要确定函数名和参数个数;

如果有必要,可以先对参数的数据类型做检查;

函数体内部可以用return随时返回函数结果;

函数执行完毕也没有return语句时,自动return None。

函数可以同时返回多个值,但其实就是一个tuple。

定义默认参数要牢记一点:默认参数必须指向不变对象!

4、尾递归
调用函数本身,但是return的返回值不包含表达式。这么做可以防止递归层数过多,出现堆栈溢出的情况。因为常规递归会逐层添加栈帧,直到最后一个栈帧释放后才开始释放。而尾指针相当于把常规的递归反过来,增加一层递归的同时释放前一个递归指针,所以能够始终保持只有一个栈帧在使用中。

常规递归

def fact(n):
    if n==1:
        return 1
    return n * fact(n - 1)

尾递归

def fact(n):
    return fact_iter(1, 1, n)

def fact_iter(product, count, max):
    if count > max:
        return product
    return fact_iter(product * count, count + 1, max)

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
项目管理和工程管理的区别 项目管理 项目管理,顾名思义就是专注于开发和完成项目的管理,以实现目标并满足成功标准和项目要求。 工...