Python----Day1

关于Python可执行程序
1.将脚本变成可执行程序,加上执行权限就可以了
1.shell脚本直接授予 x 权限,然后直接执行就可以
2.python程序要执行要满足下面任一条件
1.在排头指定程序解释器,默认使用 /bin/bash
在解释器这里还有两种情况
1. #!/usr/bin/env python3
调用env(环境变量)下面的python,-----寻找系统默认的python变量
要使用上面的这种情况
2. #!/usr/bin/python3
这种情况会固定住python解释器的调用程序

2.直接使用python运行程序
变量:
特征
1.可变的量
作用
1. 存储数据
2. 保存程序运行的中间结果
2 .以备后面调用
3..减少代码量

#开发最大的忌讳是写重复代码
为了避免写重复代码,可以将代码写成变量,通过引用变量来将代码进行最大限度的引用,减少重复代码
变量的语法结构

写法:
变量名 = "变量值"
1. = 等号前后是空格
2. 变量值要使用双引号引起来
3. 在引用变量的时候可以直接写上变量名,而不再需要加上引号
4. 两个变量在合并使用的时候,只需要在变量中间使用 , (逗号隔开)即可,,(逗号)不会出现在变量中间
5, 如果需要在变量中间直接添加字符串,可以使用 ''(单引号) 或者双引号,将字符串写到 ''(单引号)或双引号里面,并使用 , (逗号) 隔开即可

变量的命名规则

1. 变量名只能是字母、数字、或下划线的任意组合
2. 变量名的字第一个字符不能是数字(不能以以数字开头)
3. 以下关键字不能声明为变量名 (不会报错,但是是不行的)
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import',
'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
4. 变量名中间不能够有空格,中间只能够是数字或者下划线
5. 可以以 _ (下划线开头),但是这么写的很少

变量名只能包含以下字符
1. 小写字母(a-z)
2. 大写字母(A-Z)
3. 数字(0-9)
4. 下划线 ( _ )

变量的命名规范(软性内容,不做强制要求):
1. 要有描述性,(别人能够通过读取变量名来明白变量的含义)

变量的写法
1.变量名中间使用下划线 name_server = "114.114.114.114"
2.驼峰体,每一个单词的首字母大写,如果单词较多可以使用这种写法 NameSercer = "114.114.114.114"
3.只有首字母大写:在python中首字母大写一般是类名 Name_server = "114.114.114.114"
4.常量:NAME_SERVER = "114.114.114.114"
确定以后不会改变的量

'''

字符编码
因为计算机不会认识文字,所以如果需要计算机能够认识文字,需要写一个对照关系
通过 二进制与文字的对照关系的转换,来完成文字的录入

这种对照关系就是: ASCII 表 字符编码 (数字到文字的对照关系)
----( American Standard Code for Information Interchange) 美国标准信息交换代码

英文使用了前 127 个,:所有的 英文字母、数字和特殊符号

还留有128个

计算机底层就是ASCII,找字符就先去找 ASCII码表

关于中文汉字的处理:
为了处理汉字,程序员设计了用于
简体中文 GB2312
用于繁体中文的 big5

GB2312 (19080年)一共收录了 7445 个字符,包括 6763个汉字和 682 个符号。汉字区的内码范围高字节从 B0-F7, 低字节 A1-FE,占用的码位是 72*94 = 6768,,其中有5个空位是 D7FA-D7FE

GB2312 支持的汉字太少,1995年的汉字扩展规范GBK1.0收录了21886个符号,它分为汉字区和图像符号区



Unicode:最少两个字节


二进制存储数字过程:
对照表:ASCII码表
定长, 分8位 通过定长的方式来确定取值

空格和分号都是使用二进制表示的,所以不能使用这两种作为区分

为什么要分8位

ASCII码表最大有256中状态,实际表示到255个数字,所以就为了最大转台就规定最大长度到8位

1个二进制位能够表示 : 0 1
计算机最小表示单位是 bit,(1个二进制位)
1个二进制不能够存储数据,它不能代表任何实际意义
必须要 8 位 拼起来才能够代表 1 个 1


最小的存储单位:8bits = 1Byte = 1 个字节

1个字节可以表示 1 个 ASCII 码的字符

1024bytes = 1KBytes 1kb 能存储 1024 assic 字符
1024kb = 1mbytes 1MB 能够存储
1024MB = 1GB

1024GB = 1tb
1024TB = 1PB


ASCII 要占用1个字节,为了实现定长,1个字符至少占8位
在万国码中,至少要占用2个字节,16位 2**16 = 65536 个字符

早期的时候占4个字节

继续优化---UTF-8(可变长编码集)

UTF-8 是对Unicode编码的压缩和优化,他不再至少使用2个字节,而是将所有的字符和符号进行分类:
1.ascii码中的内容用1个字节保存
2.欧洲的字符用2和字节保存
3.东亚的字符用3个字节保存

所以:python解释器在加载 .py 文件的代码时,会对内容进行编码(默认ascii),
python 2.x(90年代诞生没有中文支持) 解释器在加载 .py 文件中的代码时,会对内容进行编码 (默认ascii)

如果想要在python2里面写中文,必须要声明文件编码
:
#-*-coding:utf-8 -*-

使用不同的编码的时候要注意:
1.声明的编码
2.运行软件的编码
3.操作系统的编码

其他格式的声明如何去写



python2不支持中文,所有的编码默认使用ascii,如果使用其他的就需要进行(coding)转码
在python3上面,默认支持的编码就是 utf-8
在python上面就不需要关注编码的问题了
'''
数据类型
包含:

1.数字
1.int(整型) 整数,说白了
取值范围:
1. 在32位机器上,整数的位数是32位,取值范围为 -2**31 ---2**31-1
即:-2147483648~~~~~2147483647
2.在64位系统上,整数的位数为64位,取值范围为:-2**63~~~~2**63-1
即:9223372036854775808~~~~~~9223372036854775807
这个成为过去式了:在python3里面,取值范围都可以很大,并且32位机器很少了(不需要关注了)
在62位机器上是 2**64 只能够说很大


2. long(长整型) 整数放不下了,就使用;(长整数)--几乎无限大
跟C语言不同,Python的长整数没有指定位宽,:即:python没有限制长整数数值的大小,
但实际上由于机器内存有限,我们使用的长整数数值不可能无限大

注意:从python2.2起,如果整数发生溢出,python会自动将整数数据转换为长整数
所以如今在长整数数据后面不加字母 L 也不会导致严重后果了
扩充:
在64位机器上面安装的python2,在 2**31的时候如果出现长整型
需要说明的是,系统肯定支持64位,之所以出现这种情况是因为 python2的版本是32位
如果装一个64位版本的python就没有问题了
注意:从python2.2起,如果整数发生溢出,python会自动将整数数据转换为长整数
所以如今在长整数数据后面不加字母 L 也不会导致严重后果了

python3上,已经没有长整型这一说了,全部都是整型

3. float(浮点型)
扫盲访问:http://www.cnblogs.com/alex3714/articles/5895848.html

可以大约认为浮点型(数)就是小数
浮点数用来处理实数,即电邮小数的数字。类似C语言中的double,占8个字节(64位)(表示1个浮点),其中52位表示底,11位表示指数,剩下的1位表示符号
3.23和52.3E-4是浮点数的例子,E标记表示10的幂,在这里, 52.3E-4表示52.3 * 10-4。
浮点数占用的空间是很大的,因为要存储小数点后面的,占用的空间比一个整数要大很多,尽量不要使用浮点

4.complex(复数)
复数由实数部分和虚数部分组成,一般形式为 x + yj,其中x是复数的实数部署,y是复数的虚数部分,这里的 x 和 y 都是实数
(-5+4j) 和 (2.3-4.6j)是复数的例子,其中-5.4是实数,j为虚数,
数学中表示复数是什么? --- 数学中使用 i 来表示
python使用的是工程学领域的概念
工程学领域的是 j,不是 i

应用场景:磁场、量子力学、通信

数字类型的数字包括
1.int 整型
2. long 长整型
3.float 浮点型
4.complex 复数
数字的表示,在python里面不加引号,加了引号就是字符串



布尔值
是计算机里最基本的判断单位
真或假 True False
1或0

一会学流程控制:根据你的指令,
1个条件成立去做什么事情
1个条件不程序去做什么事情
这种判断条件成立不成立来决定下一步做什么事情
在计算机里面判断条件成立不成立就是使用 布尔值

真 True 1 条件成立
假 False 0 条件不成立 什么也没有,就是假

计算机最底层的判断就是通过真假来判断,这是最底层的一个数据类型---布尔值

>>> 5 + 10 > 12
True
>>>

字符串
本周浅讲

字符串常用功能:
1. 移除空白 strip
不止会移除空白,还会把TAB 、换行符也移除掉

2. 分割 未讲解,说一会儿讲解

3. 长度 len()
返回有多少字符,包括空格
4. 索引 [] 直接写号
通过索引值的方式去取值
使用中括号去取值,从0开始,包含空格
5. 切片 []
方法是:顾头不顾尾,将除却最后一个字母之前的所有字母取到

注意:
6.索引与切片(这里说的是用于取值的情况下)
相同的地方是:
1.都从0开始
不同的地方:
1.索引是单独的1个
切片的连续的几个

python 中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的内存空间
并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的 + 号每出现一次就会在内存中重新开辟一块空间

1.使用 + 号拼接的劣势
每加一次,就会开辟一次新的内存空间,使用加号拼接时,其实会调用好几次内存,一次性调用好几次内存效率就会降低
最简单的一次性从内存中取出数据,效率就会高
不到万不得已,不要使用这种方法

不用这种加号还想要实现这种效果:----格式化输出

需要注意:字符串与 int 不能直接相加拼接

不用加号还想实现这种效果,这就涉及到了格式化输出
通过引用变量的形式来进行引用
使用 %s 这种方式来进行变量的引用, 并且要在最后告诉里面的值分别是引用的哪些变量名

一种比较误解的方式就是直接将变量名写入到变量值里面,这是错误的,python会将其直接当做字符串引用

格式化输出要注意:
1.有多少变量,就写多少占位符,按顺序的



字符串基本先讲上面这些:
1.字符串拼接
2.移除空白
3.取索引
4.切片
'''
关于字符串的内容还没有讲完,还有很多功能,下周讲,本周先了解

接下来讲解列表

列表是我们以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作。

如果要存储大量的名字有两种方式:

1.有多少名字,用多少变量
name1 = ""
name2 = ""
name3 = ""

缺点就是想要取到具体的名字的以后,容易忘记变量名

2.通过一个变量写多个名字
缺点是:存储方便,但是在取值的时候,很麻烦,修改也会麻烦

提示:字符串是不能修改的,
移除空白:是移除的两边的空白,中间的空白不会去掉;虽然看到的是很像改了的,但是实际上没有修改
原来的值不会更改,一旦赋值,不能修改;
如果要修改,只能重新赋值
但如果要修改其中的某一段内容,重新赋值又是不行的

---用字符串去存储大量的数据,是存储不下去的
实际业务中,如果需要存储大量的数据,研发出一种新的内容---: 列表

列表就是用于存储多个数据

列表写法
1.使用空列表
2.使用 , (逗号隔开),属主使用 "" (双引号引起来)

取值的时候
1.从 0 开始

列表的一些操作
1.列表的修改
直接写值,修改即可
2.append 在列表末尾追加的方式

列表 的增删改查的写法还需要测试

运算
1.算数运算
2.比较运算
3.赋值运算
4.逻辑运算
5.成员运算
6.身份运算
7.位运算

算术运算
+ 加
- 减
* 乘
/ 除
% 取模,返回除法的余数
** 幂,返回 x 的 y 次幂
// 取整数,-返回商的整数部分

使用变量之前要确保这个变量已经被事先声明
变量还有一个知识点未讲解

比较运算
== 等于 - 比较对象是否相等 ( a == b ) 返回 False
!= 不等于-比较两个对象是否不相等 (a != b) 返回true
<> 不等于-比较两个对象是否不相等 (a <> b) 返回true,这个运算符类似 != python3 中已经去掉这种写法
> 大于 - 返回 x 是否大于y (a > b ) 返回False
< 小于 - 返回 x 是否小于y ( a< b ) 返回true
>= 大于等于- 返回 x 是否大于等于 y (a >= b ) 返回 False
<= 小于等于 - 返回 x 是否小于等于 y (a <= b) 返回true

所以比较运算符返回 1,表示真,返回0表示假,这分别与特殊的变量 True 和 False 等价。注意,这些变量名的大小

还有其他运算未记录
posted @ 2016-07-29 10:48  Linusxy  阅读(181)  评论(0编辑  收藏  举报