小待

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

Python学习第二篇:Python入门

1.Python安装,安装解释器

windows

1、下载安装包    https://www.python.org/downloads/
2、安装            默认安装路径:C:\python35
3、配置环境变量(python3新版本会自动添加环境变量)    

【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】    如:原来的值;C:\python35,切记前面有分号

 

linux、Mac

见。。。


2、Hello World程序

在linux 下创建一个文件叫hello.py,并输入
print("Hello World!")

windows:
C:\Python35\python.exe D:\1.py

Linux:
localhost:~ # python hello.py


指定解释器
上一步中执行 python hello.py 时,明确的指出 hello.py 脚本由 python 解释器来执行。
如果想要类似于执行shell脚本一样执行python脚本,例: ./hello.py ,那么就需要在 hello.py 文件的头部指定解释器,如下:

#!/usr/bin/env python   #-->指定解释器   或者 #!/usr/bin/python

# -*- coding:utf-8 -*-   #-->指定python解释器用什么编码 

print "hello,world"


如此一来,执行: ./hello.py 即可。
ps:执行前需给予 hello.py 执行权限,chmod 755 hello.py

python执行方法:

1.单个文件,指定解释器执行,如:C:\Python35\python.exe D:\1.py

2.一行一行在交互器中执行,如

在交互器中执行 
除了把程序写在文件里,还可以直接调用python自带的交互器运行代码, 

localhost:~ jieli$ python
Python 2.7.10 (default, Oct 23 2015, 18:05:06)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Hello World!")
Hello World!

 

python内部执行过程如下:

 

 

3.IDE----使用pycharm

 

- 新建python文件
1. new project
2. new 创建文件夹
3. new 创建py文件

- 执行

 在py文件中右键, run xx.py

 

- 设置文件编码


- 设置文件模板


- 设置使用时改变大小

 

- 如何多行注释

选中注释,ctrl+?

 

4.pyc文件

执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译之后产生的字节码。

注:代码经过编译可以产生字节码;字节码通过反编译也可以得到代码

 

5.python文件中的注释用法

1.多行注释

"""

被注释内容

"""

2.单行注释

#被注释内容

 

6.编码

python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)

ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。

注:python3默认utf-8,python2默认是ASCII。

 

计算机只识别二进制,所以需要转换成0 1 ,就是电流开关;

一个二进制数字=1比特bit=>计算机最小存储单位;

由于比特太小,为了容易区分,8个比特组合成一个字节bytes=> 8比特=1bytes字节

 

编码有如下:(内存中是Unicode,这样速度快;硬盘不是,因为io影响更大)

ASCII : 总共一个字节,8位  2**8=256,所以最多ASCII码最多只能表示 256 个符号。是单字节的编码,主要用于显示现代英语和其他西欧语言,显然ASCII码无法将世界上的各种文字和符号全部表示。

Unicode:(统一码、万国码、单一码)  最少两个字节,16位  2**16=65536,所以Unicode码至少表示 65536个符号。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码

UTF-8 :对万国码的压缩,遵循能用最少的表示就用最少的表示,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存(256)、欧洲的字符用2个字节保存(65536),东亚的字符用3个字节保存(4294967296)。(所以,在写代码时,为了不出现乱码,推荐使用UTF-8,在前面加入 # -*- coding: utf-8 -*-)

 

中文专用(包含ASCII码)---ascii码中的内容用1个字节保存(256)、中文需要2个字节(65536),如下:

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

GBK  :  GB2312 支持的汉字太少。1995年的汉字扩展规范GBK1.0收录了21886个符号,它分为汉字区和图形符号区。汉字区包括21003个字符。GB18030:

GB18030:2000年的 GB18030是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。现在的PC平台必须支持GB18030对嵌入式产品暂不作要求。所以手机、MP3一般只支持GB2312。

 

7.进制

简介:

 进制就是进位制,是人们规定的一种进位方法。计算机底层的数据运算和存储都是二进制数据。计算机语言就是二进制,计算机能直接识别二进制数据,其它数据都不能直接识别。

 

  李在不同的编码有不同的进制表示:

  UTF-8: 自己对应关系
  李 01010010 01010010 01010010

  GBK: 自己对应关系
  李 11010010 01110011

 

常用进制:

  对于任何一种进制---X进制,表示运算时是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。我们经常使用的是二进制、八进制、十进制、十六进制。

  • 十进制:有10个基本数字,分别为     0、1、2、3、4、5、6、7、8、9                               ,运算规则”逢十进一”;
  • 八进制:有8个基本数字,分别为       0、1、2、3、4、5、6、7                                         ,运算规则”逢八进一” 
  • 十六进制:有16个基本数字,分别为  0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F ,运算规则”逢十六进一”。

  • 二进制:有2个基本数字,分别为       0、1                                                                       ,运算规则”逢二进一”。

 

进制转换:

我们有最常用的转换方法:用十进制数据除以目标进制得到余数,并将余数从最后一个到第一个排列,就是转换后的目标进制表示形式(简称“除基取余,直到商为0,余数反转”)。以十进制43向二进制转换为例:

得到的数值排列:101011,所以十进制43的二进制表示形式为101011,同理,如果求八进制、十六进制表示形式,用43除以8、16即可。

 

总结:

1.硬盘上保存数据:01010101

2.读取:01010101->对应的编码的汉字->xx

3.看到:

    --转换完成的字符串

    --以十六进制展示的01010101

  

另外:直接拿输出的0、1二进制表示:  rb -- 以二进制的方式打开

f = open('log','rb')
data = f.read()
f.close()
print(data)

由于0、1二进制展示太长了,所以有自动转换成16进制,这样更好表示:

 

 

8.  变量
变量的定义:一个在内存储数据的容器,用来记录状态
变量的意义:为什么有变量,因为他保存程序执行的中间结果或者状态以供后面代码进行调用 (也可以说是昵称,其代指内存里某个地址中保存的内容)

变量值的变化即状态的变化,程序运行的本质就是来处理一系列状态的变化


官方定义: 
Variables are used to store information to be referenced and manipulated in a computer program. They also provide a way of labeling data with a descriptive name, so our programs can be understood more clearly by the reader and ourselves. It is helpful to think of variables as containers that hold information. Their sole purpose is to label and store data in memory. This data can then be used throughout your program.

 

声明变量:

name = "my"


上述代码声明了一个变量,变量名为: name,变量name的值为:"my"


变量定义的规则:
• 变量名只能是 字母、数字或下划线的任意组合
• 变量名的第一个字符不能是数字(不能数字开头)
• 以下关键字不能声明为变量名
['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']

 

命名惯例:
   a. 显示  ----通俗易懂
   b. 下划线表示法:nums_of_alex_gf 
   c. 驼峰表示法: NumsOfAlexGf
   d. 区分大小写
 

变量的赋值

name = "A"
n = name
print(n,name)

n = "A"
print("What is the value of n now?")

name = "A"

n = name =>根本指向了一个源,是相等的,一个变量一个内存空间

 

name = "A"

n = "A"  =>其他语言是又开辟了一个空间,但python会自动转化成同一个空间


9.输入输出

输入:input、getpass.getpass

输出:print

如:

#!/usr/bin/env python
#_*_coding:utf-8_*_

# 将用户输入的内容赋值给 name 变量
name = input("What is your name?")

# 打印输入的内容
print(name)

 


输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,

即:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import getpass
pwd = getpass.getpass("请输入密码:")
# 打印输入的内容
print(pwd) 

注: getpass方法不能直接在IDE中执行,应该去终端执行,方能实现不可见功能。

 

10.判断语句  if

语法: 注意缩进,空四格。

if 条件1 and 条件2: #and 条件2 可以不要
print(结果1)
elif 条件3:
print(结果2)
else:
print(结果3)

例子:

user_type = input('请输入用户类型:')
if user_type == "a":
    username = input("请输入用户名:")
    if username == 'b':
        print('ok')
else:
    print("low") 

 

11.循环语句 while

语法:

while 条件:     
     循环体 
# 如果条件为真,那么循环体则执行 # 如果条件为假,那么循环体不执行

注意可以使用:

break 跳出整个循环
continue 结束本次循环,开始下一次循环

pass 什么都不做


例子:计算1到100的和

i = 1
value = 0
while i < 101:
    i += 1
    value = value + i
print(value)
posted on 2017-05-05 21:59  小待  阅读(128)  评论(0)    收藏  举报