参考《Python程序设计(第2版)》 清华大学出版社 董付国

##### 除特殊说明外,以下代码示例,均为python 3.6版本 #####

一、Python语言特性

1.python是一种强类型编程语言,就是说,python解释器会根据赋值或运算自动推断变量类型

2.python是一种动态类型语言,就是说,变量的类型可以随时变化

可以使用 type() 查看变量类型,isinstance() 可以判断对象是否为指定类型的实例

#python 3.x
1 >>x=3
>>print(type(3))
<class 'int'> >>isinstance(3,int)
True >>isinstance('hello world',str)
True

3.python使用基于值的内存管理方式

如果为不同变量赋值为相同值,这个值在内存中只有一份,多个变量指向同一块内存地址

 #pyhton 3.x
1 print("id(x):",id(x))
y=x
print("id(y):",id(y))
x+=6
print("id(x+6):",id(x)) out:
id(x): 1876094032
id(y): 1876094032
id(x+6): 1876094224

4.python具有自动内存管理功能,会跟踪所有值,自动删除不再有变量指向的值

显式使用 del 命令删除不需要的值,是一个优秀程序员的基本素养之一

二、Python内置对象

简单罗列一下,后续文章会陆续介绍

类型 示例
数字 1234, 3.14, 3+4j
字符串 'swf' 'hello' "have fun"
列表 [2,2,3] ['a', 'v', ['c', 'd']]
字典 {1:'red', 2:'yellow', 3:'blue'}
元组 (2, -4, 5)
文件 f=open('data.txt','r')
集合 set('abc') {'a', 'c', 'e'}
布尔型 True False
空类型 None
编程单元类型

函数 def

类 class

三、Python运算符

运算符与C语言类似,简单说几种比较特别的:

x or y  逻辑或  x and y 逻辑与  not x   逻辑非

x//y 求整商  x/y 真除法  

 #python 3.x
>>3.0/5
0.6 >>3.0//5
0.0

x**y 幂运算 

x in y  ; x not in y  成员测试

x is y ; x is not y 对象实体同一性测试(地址)

@ 矩阵乘法

四、Python关键字

 >>import keyword
>>print(keyword.kwlist)
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue',
'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if',
'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

五、删除操作del

使用 del 显示删除对象并解除对象与值之间的指向关系

若该值有其他对象指向,则只删除对象,不删除该值;否则删除该值

del 可以删除列表或其他可变序列中的指定元素,无法删除元组或字符串,因为这两者属于不可变序列

六、基本输入输出

使用 input() 接收用户输入

在Python 3.x中,input() 函数的返回结果为字符串,需要将其转化为相应的类型再处理

 >>x = input("input:")
input:3 >>print(type(x))
str

输出重定向

 >>fp = open(r'D:\file.txt','a+')
>>print('hello world', file=fp)
>>fp.close()

七、模块导入与使用

1. import 模块名 [as 别名]

2. from 模块名 import 对象名 [as 别名]

仅导入明确指定的对象,可以减少查询次数,提供访问速度

3. from 模块名 import *

一次导入所有对象,一旦多个模块中有同名的对象,会导致混乱

模块导入的顺序

1. 导入python标准库模块,如 os  sys  re

2. 导入第三方扩展库,如 numpy  scipy

3. 导入自己定义和开发的本地模块

八、python文件名

常见扩展名

py 源文件,由解释器负责解释

pyw 源文件,用于图像界面程序

pyc 字节码文件,用于隐藏python源代码,提高运行速度

模块第一次导入时被编译为字节码的形式,在以后再次导入时优先使用.pyc文件

pyd 由其他语言编译的二进制文件,常用于实现某些软件工具的python编程接口插件或python动态链接库

python程序设计——基本语言特性的更多相关文章

  1. Python的动态语言特性; __slots__属性

    python是动态语言 1. 动态语言的定义 动态编程语言 是 高级程序设计语言 的一个类别,在计算机科学领域已被广泛应用.它是一类 在运行时可以改变其结构的语言 :例如新的函数.对象.甚至代码可以被 ...

  2. 转--Python语言特性

    1 Python的函数参数传递 看两个例子: a = 1 def fun(a): a = 2 fun(a) print a # 1 a = [] def fun(a): a.append(1) fun ...

  3. Python语言特性

    1 Python的函数参数传递 看两个例子: a = 1 def fun(a): a = 2 fun(a) print a # 1 a = [] def fun(a): a.append(1) fun ...

  4. Python的语言特性

    1.Python的函数传参 Python中所有的变量都可以理解为内存中一个对象的“引用”,或者,也可以看似C中的void *的感觉.这里记住的是类型是属于对象的,而不是变量.对象分为两种: 可更改的: ...

  5. 写给.NET开发者的Python教程(一):C# vs Python: 语言特性、Conda和Jupyter Notebook环境

    承接上篇,本文会从语言特性.开发环境和必备工具来带领大家进入Python的世界. 语言特性 首先一起看下C#和Python在语言特性层面的对比,他们作为截然不同的两类面向对象高级语言,在语言层面上有何 ...

  6. python语言特性-------python2.7教程学习【廖雪峰版】(一)

    开始学习廖雪峰的py2.7教程: 2017年6月5日12:54:28 笔记: 廖雪峰python2.7教程1.用任何编程语言来开发程序,都是为了让计算机干活.  2.Python是一种相当高级的语言. ...

  7. Python 的语言特性

    谈谈对 Python 和其他语言的区别 Python 是一门语法简洁优美,功能强大无比,应用领域非常广泛,具有强大完备的第三方库,他是一门强类型的可移植.可扩展,可嵌入的解释型编程语言,属于动态语言. ...

  8. python基础-初识Python和不同语言之间的区别

    一.Python的创始人谁? Python之父:吉多·范罗苏姆GuidovanRossum 吉多·范罗苏姆是一名荷兰计算机程序员,他作为Python程序设计语言的作者而为人们熟知.在Python社区, ...

  9. python之 python 起源、语言特点

    一. 1.1  什么是 PythonPython 是一门优雅而健壮的编程语言,它继承了传统编译语言的强大性和通用性,同时也借鉴了简单脚本和解释语言的易用性.它可以帮你完成工作,而且一段时间以后,你还能 ...

随机推荐

  1. 【XP-IE8】XP系统的IE8无法正常访问图片,按钮无反应,不执行JS脚本代码

    环境: Windows XP ,自带的是IE6,另外安装的 IE8 . 状况: 使用IE8浏览内网网站,点击登录按钮,没有反应.滚动图片新闻不显示.但使用Chrome浏览器,一切正常,说明是IE8某处 ...

  2. svn使用过程中遇到的问题

    前言:记录一下svn使用的过程中遇到的问题 最近的公司使用的svn来管理项目,因为这个项目接手过来已经有至少一年多的工龄了,所以暂且还是也用svn来处理吧,如果要是做新项目的话,真心地希望使用Git来 ...

  3. 关于刷新同级layer弹框的解决方法

    在项目中遇到这种情况: 父页面点击详情,layer.open一个子页面A,子页面里面又存在操作按钮,点击使用parent.layer.open在打开一个子页面B,子页面B点击提交操作成功要刷新子页面A ...

  4. Object C学习笔记24-关键字总结(转)

    学习Object C也有段时间了,学习的过程中涉及到了很多Object C中的关键字,本文总结一下所涉及到的关键字以及基本语法. 1.  #import #import <> 从syste ...

  5. c#常用数据库封装再次升级

    c#封装的几类数据库操作: 1.sqilte 2.berkeleydb 3.一般数据库 4.redis 包含其他项目: 1.序列化 2.通信 3.自定义数据库连接池 再次升级内容: 1.新增redis ...

  6. BZOJ3098: Hash Killer II(构造)

    Time Limit: 5 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 2162  Solved: 1140[Submit][Status][ ...

  7. leetcode笔记(六)740. Delete and Earn

    题目描述 Given an array nums of integers, you can perform operations on the array. In each operation, yo ...

  8. SD 信贷出口 备忘

    信贷出口LVKMPFZ1,LVKMPFZ2,LVKMPFZ3

  9. YII2.0 用GII创建视图文件后访问404

    使用GII的CRUD Generator创建searchModelClass 和控制器类文件,视图文件后,访问控制器地址后出现404的情况. 创建过程如图所示 后来发现是控制器类 Controller ...

  10. SpringMVC+Mybatis框架搭建

    一.新建javaweb项目,并建好相应的包结构 二.添加项目jar到lib目录下 三.在config包中新建配置文件 sping-mvc.xml,内容如下: <?xml version=&quo ...