day01--python基础1

# 01讲
 
- Windows下执行程序,必须加 PYTHON。在LINUX下,可以不指明是PYTHON。但是,执行钱许给予hello.py执行权限。
- 其次,只要变成可执行程序,必须第一行事前申明解释器 #!/usr/bin/env python, 告诉操作系统用何方世解释。
- 另种,#!/usr/bin/ python (不要用这个) env 是选择环境 #!/usr/bin/env python执行的是linux里,你自己新安装的3.5版本;#!/usr/bin/ python执行的linux里的老版本,2.0版本的
-退出 exit()
-
 
 
# 02讲
 
- 修改默认的pycharm位置:
视图-工具栏-工具-编辑器-python script中输入就可以
-变量定义的规则:
 
1. 变量名只能是 字母、数字或下划线的任意组合(如gf_of_oldboy;中间放下划线)
2. 变量名的第一个字符不能是数字
以下关键字不能声明为变量名
['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']
 
-字符编码
 
1、python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)
 
2、ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。
 
3、显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode
 
-Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
 
- UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
 
-发展史
ascii 255 1bytes
--> 1980 gb2312
--> 1995 gbk1.0 2w+
--> 2000 GB18030 27xxx
-->unicode 2bytes
-->utf-8 en:1byte zh:3bytes
- python2中需要添加 # -*- config:utf-8 -*-才能写中文
 
- 注释
当行注视:# 被注释内容
多行注释:""" 被注释内容 """
 
- 输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import getpass(需要输入)
 
# 将用户输入的内容赋值给 name 变量
pwd = getpass.getpass("请输入密码:")
 
# 打印输入的内容
print(pwd)
 
 
- #IndentationError:为缩进错误
-
 
- 加入断点调试---左键点击首行的位置(出现红点)--点击工具栏的调试可进行逐行调试
-
 
# 模块初始
1. sys模块
import sys
 
#print(sys.path) #打印环境变量
print(sys.argv) #打印相对路径
print(sys.argv[2]) #打印第二个值,从0开始
- python sys_01.py 1 2 3打印出 ['sys_01.py', '1', '2', '3']
'''
 
2. os模块
import os
 
#a = os.system("dir") #执行命令,不保存结果
a = os.popen("dir").read() #读取结果
print(a)
os.mkdir("new.dir") #新建目录
 
 
# pyc
1、Python是一门先编译后解释的语言。
2、pyc文件其实是PyCodeObject的一种持久化保存方式。
 
 
 
# 数据类型
 
- 数字 int(整型) float(浮点型) complex(复数)
- 布尔值 真或假  1 或 0
- type 查看数据类型
- 字符串
True and 1 为真
Flaue and 0 为假
 
-字符串是 %s;整数 %d;浮点数%f
 
  1. 以下实例演示了Python所有位运算符的操作:
实例(Python 2.0+)
#!/usr/bin/python # -*- coding: UTF-8 -*- a = 60 # 60 = 0011 1100 b = 13 # 13 = 0000 1101 c = 0 c = a & b; # 12 = 0000 1100 print "1 - c 的值为:", c c = a | b; # 61 = 0011 1101 print "2 - c 的值为:", c c = a ^ b; # 49 = 0011 0001 print "3 - c 的值为:", c c = ~a; # -61 = 1100 0011 print "4 - c 的值为:", c c = a << 2; # 240 = 1111 0000 #代表左边的数乘以2的2字方 print "5 - c 的值为:", c c = a >> 2; # 15 = 0000 1111 #代表左边的数除以2的右边数的立方 print "6 - c 的值为:", c
以上实例输出结果:
1 - c 的值为: 12 2 - c 的值为: 61 3 - c 的值为: 49 4 - c 的值为: -61 5 - c 的值为: 240 6 - c 的值为: 15
  1. python中会为每个出现的对象分配内存,哪怕他们的值完全相等(注意是相等不是相同)。如执行a=2.0,b=2.0这两个语句时会先后为2.0这个Float类型对象分配内存,然后将a与b分别指向这两个对象。所以a与b指向的不是同一对象:
a=2.0 b=2.0 a is b # 结果为False a == b # 结果为True
但是为了提高内存利用效率对于一些简单的对象,如一些数值较小的int对象,python采取重用对象内存的办法,如指向a=2,b=2时,由于2作为简单的int类型且数值小,python不会两次为其分配内存,而是只分配一次,然后将a与b同时指向已分配的对象:
a=2 b=2 a is b # 结果为True a == b # 结果为True
如但果赋值的不是2而是大的数值,情况就跟前面的一样了:
a=4444 b=4444 a is b # 结果为False a == b # 结果为True
 
 
这里 is 和 == 类似编译原理中传值与传地址。又或者说是 is 只是传递的指针,判断是否指向同一个地址块,这样 is 两边的参数指向内存中同个地址块,毕竟我家电视跟你电视不是同一个东西。而 == 则是仅仅判断值相同
 
如果变量写在同一行,将会指向同一个对象
>>> a=4444; b=4444; # 写在同一行 >>> a is b True >>> a == b True >>> c = 5555 # 写在不同一行 >>> d = 5555 # 写在不同一行 >>> c is d False >>> c == d True >>>
以上情况在交互模式会出现,使用脚本运行,不管是否同一行,都是指向同一个地址:
# -*- coding: utf-8 -*- a = 4444; b = 4444 print(a is b) # true c = 5555 d = 5555 print(c is d) # true
 
 
 

计算机中能表示的最小单位,是一个二进制位
计算机中能存储的最小单位,是一个二进制位(bit)
  1. bytes数据类型
  2. 如果条件为真:result = 值1
    如果条件为假:result = 值2
    三、进制
     
    msg = "我爱天安门"
    print(msg)
    print(msg.encode(encoding="utf-8"))#将string数据类型转成byte数据类型
    print(msg.encode(encoding="utf-8").decode(encoding="utf-8")) #将byte数据类型转成string

 

posted @ 2017-09-05 17:04  hgui  阅读(142)  评论(0编辑  收藏  举报