1.输入输出

输入?

2.文本编辑器中,需要把Tab键自动转换为四个空格,确保不混用Tab和空格。

3.数据类型和变量

1.整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(包括除法),而浮点数运算则可能会有四舍五入的误差。

2.字符串内部既包含'又包含"的话,可以用转义字符\来标识。可以用r来表示字符串不用转义

'I\'m \"OK\"!'
#表示的字符串是:
I'm "OK"!

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

print('''Line1
...Line2
...Line3''')
#
Line1
Line2
Line3

4.空值是python中特殊的值,用None表示,None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

5.变量的赋值

6.除法运算

  • 10/3:
  • 10//3:整除,两个整数的除法任然是整数(只取除法的整数部分)

7.python的整数没有大小限制,浮点数也没有大小限制,但是超出一定范围就表示为Inf

4.字符串和编码

  • 在计算机内存中,统一使用Unicode编码,当需要保就存到硬盘或者需要传输时,就换成UTF-8编码
  • 用记事本编辑的时候,从文件读取的UTF-8字符被转换成Unicode字符到内存里,编辑完成后,保存的时候再把Unicode编码转换为UTF-8保存到文件
  • 浏览网页时,服务器会动态的把生成的Unicode内存转换为UTF-8在传输到浏览器

由于Python源代码也是一个文本文件,所以当源代码中包含中文时,在保存源代码是,就需要务必指定UTF-8编码,当Python解释器读取源码时,为了让它按照UTF-8编码读取,通常在开头写上这两行:

第一行注释是为了告诉LInux/OS X系统,这是一个Python可执行文件,Windows系统会忽略这个注释。

第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则你在源代码中写的中文输出可能会有乱码

5.“可变”的tuple

表面上看,tuple的元素确实变了,当其实变得不是tuple的元素,而是list的元素,tuple一开始指向的list并没有改成别的list,所以tuple所谓的“不变”是说:tuple中的每个元素,指向永远不变,指向一个list就不能之下你其他对象,但是指向的这个list本身是可变的。

6.str是不可变对象

7.函数参数

必选参数在前,变化大的参数放在前面,变化小的参数放在后面,变化小的参数就可以作为默认参数。

默认参数必须指向不可变对象:

此外,当多任务环境下同时读取对象不需要加锁,同时读取一点问题都没有,我们在编程时,如果可以设计一个不变对象,就尽量设计成不变对象。

可变参数:

定义可变参数和定义一个list或tuple相比,仅仅在参数面前加了一个*号。在函数内部,参数接收到的是一个tuple,因此,函数代码不变,但是调用该函数时可以传入任意个参数,包括0个。例如:

def calc(*numbers):
sum=0
  for i in numbers:
    sum=sum+n*n
  return sum

当已经有一个list或者tuple时,要调用一个可变参数的话,可以在list或者tuple前面加一个*号,把list或者tuple的元素变成可变参数传递进去,例如:

num=[1,2,3]
calc(*num)

*num表示吧num这个list的所有元素作为可变参数传递进去。

关键字参数

关键字参数语序在传入0个或者任意个含参数名的参数,这些关键字参数在函数内部自动组装成为一个dict。例如:

参数包含关键字参数**kw

使用命名关键字参数,要特别注意,*不是参数,而是特殊分隔符。如果缺少*,Python解释器将无法识别位置参数和命名关键字参数。

参数组合:

Python中定义函数,可以用必选参数,默认参数,可变参数,关键字参数,命名关键字参数,都可组合使用。但是可变参数无法和命名关键字参数混合。

参数顺序必须是:必选参数,默认参数,可变参数/命名关键字参数,关键字参数。

*args是可变参数,args接收的是一个tuple;

**kw是关键字参数,kw接收的是一个dict。

廖雪峰Python总结1的更多相关文章

  1. 廖雪峰Python电子书总结

    函数 1.注意:函数的默认参数必须指向不可变对象 未修改前: def add_end(L=[]): L.append('END') return L 存在的问题:如果连续调用多次,会出现多个 'END ...

  2. 廖雪峰python教程的第一个疑问

    函数的参数一节中提到: def add_end(L = []); L.append('END') return L 正常调用add_end时(也就是有参数传入时): >>> add_ ...

  3. 廖雪峰Python实战day1

    一.按照廖雪峰的教程,安装开发环境,问题不大. 1.异步框架aiohttp:$pip3 install aiohttp 2.前端模板引擎jinja2:$ pip3 install jinja2 3.安 ...

  4. 【python】廖雪峰python教程学习--基础

     No1: 目前,Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的 No2: 用r''表示''内部的字符串默认不转义 No3: 以'''开头,敲回车可以换行 No4: 布尔 ...

  5. 廖雪峰 ---- Python教程

    这是小白的Python新手教程,具有如下特点: 中文,免费,零起点,完整示例,基于最新的Python 3版本. Python是一种计算机程序设计语言.你可能已经听说过很多种流行的编程语言,比如非常难学 ...

  6. 廖雪峰Python学习笔记——类和实例

    Class MyList(list): __metaclass__ = ListMetaclass #它表示在创建MyList这个类时,必须通过 ListMetaclass这个元类的LIstMetac ...

  7. 廖雪峰Python学习笔记——序列化

    序列化 定义:程序运行时所有变量都存在内存中,把变量从内存中变成可存储或可传输的过程称为序列化pickling,在其他语言中称为serialization,marshalling,flattening ...

  8. 廖雪峰Python学习笔记——使用元类

    元类(MetaClasses) 元类提供了一个改变Python类行为的有效方式. 元类的定义是“一个类的类”.任何实例是它自己的类都是元类. class demo(object): pass obj ...

  9. 廖雪峰Python笔记

    △命令行模式和Python交互模式 在Windows开始菜单选择“命令提示符”,就进入到命令行模式,它的提示符类似C:\>:在命令行模式下敲命令python,就看到类似如下的一堆文本输出,然后就 ...

  10. 廖雪峰Python总结5

    1.错误,调试和测试 程序编写造成了bug(必须修复) 用户输入出错(通过检查用户输入) 异常:无法在程序运行过程中预测的.异常是必须被处理的,否则程序会因为各种问题终止并且退出 1.try: try ...

随机推荐

  1. [转]Visual Studio 2010单元测试(1)--运行和定义普通单元测试

    Visual Studio 2010 运行和定义单元测试 在VS2010中,单元测试的功能很强大,使得建立单元测试和编写单元测试代码,以及管理和运行单元测试都变得简单起来,通过私有访问器可以对私有方法 ...

  2. PHP--通用化API接口数据输出 封装

    /** * 通用化API接口数据输出 * author qinpeizhou * @param $message * @param array $data * @param int $httpCode ...

  3. JS中对象转数组方法总结

    1.Array.from() 方法,用于数组的浅拷贝.就是将一个类数组对象或者可遍历对象转换成一个真正的数组.eg: let obj = { 0: 'nihao', 1: 'haha', 2: 'ga ...

  4. [jeecms]获取父栏目下的子栏目名称

    [@cms_channel_list parentId='父栏目id'] [#list tag_list as c] <a href="${c.url}">${c.na ...

  5. JEECMS的几个细节

    最近想自己写一些标签,看了一下JEECMS,感觉有些标签还是很值得学习的. 1.图片新闻:可以实现类似于flash切换图片的那种效果 效果: 代码: [@cms.ArtiList chnlId='' ...

  6. PAT甲级——A1011 World Cup Betting

    With the 2010 FIFA World Cup running, football fans the world over were becoming increasingly excite ...

  7. [转]C#截获本机数据包方法实例

    本文向大家介绍Windows Sockets的一些关于用C#实现的原始套接字(Raw Socket)的编程,以及在此基础上实现的网络封包监视技术.同Winsock1相比,Winsock2最明显的就是支 ...

  8. 在线模拟http-post请求

    今天,要测试一个post请求的API,找了下,下面的网站可以直接利用起来,mark下 http://www.atool.org/httptest.php

  9. 2019-10-11-VisualStudio-配置多进程调试快捷键启动项目

    title author date CreateTime categories VisualStudio 配置多进程调试快捷键启动项目 lindexi 2019-10-11 15:33:32 +080 ...

  10. Win10操作系统安装—U盘作为启动盘—系统安装到固态硬盘中

    利用U盘作为启动盘安装win10操作系统 1.U盘制作为启动盘,制作工具,我选择的是大白菜(个人觉得还是很好用的) 大白菜http://www.bigbaicai.com/rjjc/syjc/3269 ...