python标识符
身份 id方法查看唯一标示符,内存地址

>>> a = "str"
>>> b = 2
>>> id(a)
140223954701072
>>> id(b)
36610848
查看变量的数据类型;
>>> type(b)
<type 'int'>
>>> type(a)
<type 'str'>

要素1:python将所有数据存为内存对象

python中,变量事实上是指向内存对象的引用
动态类型:在任何时刻,只要需要,某个对象引用都可以重新引用一个不同的对象(可以是不同的数据类型)
内建函数type()用于返回给定数据项的数据类型
"="用于将变量名与内存中的某对象绑定:如果对象事先存在,就直接进行绑定;否则,则由"="创建引用对象

>>> name = "tom"
>>> test = "tom"
>>> id(name)
140223953962208
>>> id(test)
140223953962208

要素2:对象引用(变量)
变量的命令规则
1、只能包含字母、数字和下划线,且不能以数字开头
2、区分字母大小写
3、禁止使用保留字
python2与python3的保留字有所不同
命令惯例
1、以单一下划线开头变量名(_x)不会被from module import *语句导入
2、前后有下划线的变量名(_x_)是系统定义的变量名,对python解释器有特殊的意义
3、以两个下划线开头但结尾没有下划线的变量名(__x)是类的本地变量
4、交互式模式下,变量名"_"用于保存最后表达式的结果
注意:变量名没有类型,对象才有

>>> 1 + 1
2
>>> print _
2

要素3:组合数据类型
一、数据结构:通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合
二、python常用的组合数据类型
序列类型
1、列表:使用[]创建,如['call','me','Ishmeal','.'],列表是可变对象;支持原处修改;

>>> l1=["This","is","a","pig"]
>>> l1[0]
'This'
>>> l1[0][0]
'T'

并且指向的内存对象;列表在内存中的地址空间保持不变;
注意:列表中存储的是指针;而指针指向的是内存对象的数据元素;
列表中的数据元素本身是不可变的;变的是引用;

>>> print l1
['This', 'is', 'a', 'sheep']
>>> id(l1)
140223953808704
>>> l1[3]="pig"
>>> id(l1)
140223953808704
>>> print l1
['This', 'is', 'a', 'pig'] 2、元组:使用()创建,如('one','two'),元组是不可变对象;
>>> t1=("This","is","a","pig")
>>> t1[0]
'This'
>>> t1[0][0]
'T'

3、字符串也属于序列类型
集合类型
集合
映射类型
字典

字符串切片:

>>> name = "firefox"
>>> name[0]
'f'
>>> name[0:2]
'fi'
>>> name[0:3]
'fir'
>>> name[1:2]
'i'
>>> name[:2]
'fi'
>>> name[2:]
'refox'

指定字符串的步进;
>>> name[0:7:2]
'frfx'
要素3 二: 组合数据类型
列表是可变序列,元组是不可变序列
python中,组合数据类型也是对象,因此其可以嵌套
['hello','world',[1,2,3]]
实质上,列表和元组并不真正存储数据,而是存放对象引用
python对象可以具有其可以被调用的特定"方法(函数)"
元组、列表以及字符串等数据类型是"有大小的",也即,其长度可以使用内置函数len()测量;

要素4: 逻辑操作符

一、逻辑运算时任何程序设计语言的基本功能

二、Python提供了4组逻辑运算

1、身份操作符

  is:判定左端对象引用是否相同于右端对象引用;也可以与none进行;

>>> name = "Tom"
>>> test = "Tom"
>>> name is test
True
>>> test = "firefox"
>>> name is test
False
>>> type(name) is type(test)
True

2、比较操作符

  <,>,<=,>-,!=,==
成员操作符
  in,或者 not in :测试成员关系
逻辑运算符
  and,or,not 

要素5:控制流语句

一、控制流语句是过程式编程语言的基本控制机制

二、Python的常见控制流语句

if

if boolean_expression1 :
suite1
elif boolean_expression2:
suite2
...

while

while boolean_expreesion:
suite

for .. in

for variable in iterable:
suite

try

要素6 :算数操作符

一、Python提供了完成的算术操作集

二、很多的Python数据类型也可以使用增强的赋值操作符,如+=、-=等;

三、同样的功能,使用增强赋值操作符的性能较好;

四、Python的int类型是不可变的,因此,增强类型赋值的实际过程是创建了一个新的对象来存储结果后将变量名执行了重新绑定

要素7 :输出/输出

现实中,具有实际功能的程序必须能够读取输入(如从键盘或文件中),以及产生输出,并写到终端或文件中;

python的输入/输出

输出
python3: print()函数
python2: print语句
输入
input()
raw_input()
>>> raw_input("plz input a name:")
plz input a name:firefox
'firefox'
>>> a= raw_input("plz input a name:")
plz input a name:firefox
>>> print a
firefox

python解释器提供了3中标准文件对象,分别是标准输入、标准输出和标准错误,它们在sys模块中分别以sys.stdin、sys.stdout、sys.stderr形式提供;

print 接受一个逗号分隔的对象列表,并为行尾自动添加一个换行符,如果不需要,则在最后个元素后添加逗号;

>>> a="this is a"
>>> b="pig"
>>> print a,b
this is a pig

print "string %format1 %format2 ...." %(variable1,variable2...)

%后面可以使用修饰符,(如果有,则只能按照如下顺序)

%[name][flags][width][.precision]typecode

位于括号中的一个属于后面的字典的键名,用于选出一个具体想

下面标志中的一个或多个

_:表示左对齐,默认右对齐
+:表示包含数字符号,整数也会带"+"
0:表示一个零填充
>>> num = 7.9
>>> print "The num is %f" % num
The num is 7.900000
>>> print "The num is %d" % num
The num is 7
>>> num2 = 7.12
>>> print num
7.9
>>> print num2
7.12
>>> print "The nums are %d and %f" % (num, num2)
The nums are 7 and 7.120000
>>> print "The nums are %d and %f" % (num, 3.1)
The nums are 7 and 3.100000
>>> print "The nums are %e and %f" % (num, 3.1)
The nums are 7.900000e+00 and 3.100000
>>> print "The name is %s." %name
The name is Tome.
>>> print "The name is %s." % num
The name is 7.9.
#数据类型转换:
1、显示转换:
>>> test = str(num)
>>> type(test)
<type 'str'>
>>> type(num)
<type 'float'>
>>> print num
7.9
Python 字符串格式化使用 "字符 %格式1 %格式2 字符"%(变量1,变量2),%格式表示接受变量的类型。简单的使用例子如下
# 例:字符串格式化
Name = '17jo'
print 'www.%s.com'%Name
>> www.111cn.net
Name = '17jo'
Zone = 'com'
print 'www.%s.%s'%(Name,Zone)
>> www.111cn.net
字符串格式化时百分号后面有不同的格式符号,代表要转换的不同类型,具体的表示符号如下面所示。
格式符号 表示类型
%s 字符串
%d/%i 十进制整数或长整数
%u 无符号整数或十进制整数
%o 八进制整数或长整数
%x/%X 十六进制整数或长整数(%X:大写字母)
%e/%E 科学计数;浮点数
%f/%F 浮点数
%% 输出%
% 字面量%
%c 单个字符
%r 同repr()生成的字符串
%g,G 指数小于-4或更高精度是使用%e或%E,否则使用%f
格式符号为数字时前面可以加为数和补缺位如:%[0][总位数][.][小数位数]来设定要转换的样式,具体使用方法如下:
# 例:数字格式化
nYear = 2018
nMonth = 8
nDay = 18
# 格式化日期 %02d数字转成两位整型缺位填0
print '%04d-%02d-%02d'%(nYear,nMonth,nDay)
>> 2018-08-18 # 输出结果
fValue = 8.123
print '%06.2f'%fValue # 保留宽度为6的2位小数浮点型
>> 008.12 # 输出
print '%d'%10 # 输出十进制
>> 10
print '%o'%10 # 输出八进制
>> 12
print '%02x'%10 # 输出两位十六进制,字母小写空缺补零
>> 0a
print '%04X'%10 # 输出四位十六进制,字母大写空缺补零
>> 000A
print '%.2e'%1.2888 # 以科学计数法输出浮点型保留2位小数
>> 1.29e+00
到此,我们已经演示了怎样替换指定的字段。我们还可以通过在格式化指示符后面添加一个冒号来进行精确格式化。例如:
python: format
# Field 0: left justify, pad to 15 characters
# Field 1: right justify, pad to 6 characters
fmt = '{0:15} ${1:>6}'
fmt.format('Registration', 35) ->
'Registration $ 35'
fmt.format('Tutorial', 50) ->
'Tutorial $ 50'
fmt.format('Banquet', 125) ->
'Banquet $ 125'
格式化指示符可以通过嵌套进行引用。
fmt = '{0:{1}}' width = 15
fmt.format('Invoice #1234', width) ->
'Invoice #1234 ' width = 35
fmt.format('Invoice #1234', width) ->
'Invoice #1234 '
可以指定所需长度的字符串的对齐方式。
效果字符:
< (默认)左对齐
> 右对齐
^ 中间对齐
= (只用于数字)在小数点后进行补齐
格式化指示符可以包含一个展示类型来控制格式。例如,浮点数可以被格式化为一般格式或用幂来表示。
>>> '{0:g}'.format(3.75)
'3.75'
>>> '{0:e}'.format(3.75)
'3.750000e+00'
展示类型有很多。2.6的文档里有完整的列表。这里列出一些示例。
'b' - 二进制。将数字以2为基数进行输出。
'c' - 字符。在打印之前将整数转换成对应的Unicode字符串。
'd' - 十进制整数。将数字以10为基数进行输出。
'o' - 八进制。将数字以8为基数进行输出。
'x' - 十六进制。将数字以16为基数进行输出,9以上的位数用小写字母。
'e' - 幂符号。用科学计数法打印数字。用'e'表示幂。
'g' - 一般格式。将数值以fixed-point格式输出。当数值特别大的时候,用幂形式打印。
'n' - 数字。当值为整数时和'd'相同,值为浮点数时和'g'相同。不同的是它会根据区域设置插入数字分隔符。
'%' - 百分数。将数值乘以100然后以fixed-point('f')格式打印,值后面会有一个百分号。
类和类型可以定义一个__format__()方法来控制怎样格式化自己。它会接受一个格式化指示符作为参数:
def __format__(self, format_spec):
if isinstance(format_spec, unicode):
return unicode(str(self))
else:
return str(self)
还有一个内置的format()方法可以用来格式化一个值。它会调用类型的__format__()方法,并将格式化指示符作为参数传进去。
>>> format(75.6564, '.2f') 要素8:函数的创建与调用
1、python使用def语句定义函数
2、函数可参数化,通过传递不同的参数来调用
3、每个python函数都有一个返回值,默认为none,也可以使用"return value"明确定义返回值
4、def语句会创建一个函数对象,并同时创建一个指向函数对象引用
  函数也是对象,可以存储在组合数据类型中,也可以作为参数传递给其它函数
  callable()可用于测试函数是否可调用 ():调用运算符

>>> def testFunc(arg1):
... print arg1
...
>>> callable(testFunc)
True
>>> testFunc("hello world!")
hello world!

>>> test = "firefox"
>>> testFunc(test)
firefox

python 编程语言基础技术框架的更多相关文章

  1. 3.Python编程语言基础技术框架

    3.Python编程语言基础技术框架 3.1查看数据项数据类型 type(name) 3.2查看数据项数据id id(name) 3.3对象引用 备注Python将所有数据存为内存对象 Python中 ...

  2. Python编程语言基础

    今天给大家讲解python语言基础~~ 01.python核心数据类型   整型数 int:整数是不带有小数部分的数字 浮点型数 float:浮点数是带有小数部分的数字(小数部分可以是0) 复数 co ...

  3. 『Python基础-1 』 编程语言Python的基础背景知识

    #『Python基础-1 』 编程语言Python的基础背景知识 目录: 1.编程语言 1.1 什么是编程语言 1.2 编程语言的种类 1.3 常见的编程语言 1.4 编译型语言和解释型语言的对比 2 ...

  4. 你得知道这3个最基础的APP技术框架

    出处:优设网作者:信籽链接:http://www.uisdc.com/3-basic-app-technical-framework 信籽(手淘设计师):不知道大家有没有遇到过这种情景,当你做好一个设 ...

  5. python三大web框架Django,Flask,Flask,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架

    Python几种主流框架 从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python We ...

  6. 《转》python学习--基础上

    学习的python本来想自己总结,但是发现了一篇不错的大牛的博客,拿来主义,,又被我实践了 关于前两篇如果总结的不详细,因此把他人的转载过来 http://www.cnblogs.com/BeginM ...

  7. Django,Flask,Tornado三大框架对比,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架

    Django 与 Tornado 各自的优缺点Django优点: 大和全(重量级框架)自带orm,template,view 需要的功能也可以去找第三方的app注重高效开发全自动化的管理后台(只需要使 ...

  8. 1.Python编程基础

    1. 其实,程序指的就是一系列指令,用来告诉计算机做什么,而编写程序的关键在于,我们需要用计算机可以理解的语言来提供这些指令. 虽然借助 Siri(Apple).Google Now(Android) ...

  9. 《转》python学习基础

    学习的python本来想自己总结,但是发现了一篇不错的大牛的博客,拿来主义,,又被我实践了 关于前两篇如果总结的不详细,因此把他人的转载过来 http://www.cnblogs.com/BeginM ...

随机推荐

  1. 利用JS验证查询参数-选择月份后必须选择年份

    js代码: function queryAgentInfo(){ // 标记 var flag=false; //遍历所有月份 $(".month").each(function( ...

  2. python configparser配置文件解析器

    一.Configparser 此模块提供实现基本配置语言的ConfigParser类,该语言提供类似于Microsoft Windows INI文件中的结构.我们经常会在一些软件安装目录下看到.ini ...

  3. redis从入门到放弃 -> 简介&概念

    一.redis简介 Redis是一款开源的.高性能的键-值存储.它常被称作是一款数据结构服务器. 当值支持的主要数据类型为:字符串(strings)类型,括哈希(hashes).列表(lists).集 ...

  4. java基础51 IO流技术(打印流)

    1.打印流(printStream)的概念 打印流可以打印任意的数据类型 2.printStream的步骤 1.找到目标文件    2.创建一个打印流    3.打印信息    4.关闭资源 3.实例 ...

  5. P2733 家的范围 Home on the Range

    又是一校内模拟赛见的题 不知道为什么出题人怎么这么喜欢USACO的Farmer John的他的牛... 感觉这道题不是特别的难,但也不很水 同机房的神仙们都说这个题是一道二维前缀和的裸题,但我当时的确 ...

  6. Filter过滤器-JavaWeb三大组件之一

    Servlet.Filter.Listener是JavaWeb的三大组件,给Web开发提供了很大的便利. 什么是Filter? Filter,过滤器.类似与生活中的净水器.空气净化器. JavaWeb ...

  7. DOS命令大全(一)

    #1 一: net use \\ip\ipc$ " " /user:" " 建立IPC空链接 net use \\ip\ipc$ "密码" ...

  8. HDU 1054 Strategic Game(最小路径覆盖)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1054 题目大意:给你一棵树,选取树上最少的节点使得可以覆盖整棵树. 解题思路: 首先树肯定是二分图,因 ...

  9. 自己动手编译OpenSSL库

    因为工作需要,要实现一个基于SSL的通信程序.之前没有接触过SSL协议通讯,这次学习了一下如何自己编译OpenSSL库. 我使用的环境是Windows 10 + VS2015 1.首先打开VS2015 ...

  10. Struts 2 - Hello World Example

    As you learnt from the Struts 2 architecture, when you click on a hyperlink or submit an HTML form i ...