Python Day 1
python 为你打开一道门,带你装逼带你飞。刚开始写,真不知道该写些什么,就从say hi开始吧。
>>> print 'Hello World!'
Hello World!
#在Python2中打印一个字符串是这个格式
>>>print('Hello World!')
Hello World!
#在python3中打印一个字符串是这个格式
>>> Name = input('Please input your name :')
Please input your name :Jock
>>> print (type(Name))
Jock
#python3中的input()好的没话说,python2 那个raw_input() 和 input()的区别,大王说了忘掉比较好。
|
字符集编码
python2中如不声明是用utf-8的字符编码(-*- conding:utf-8 -*-),代码中是不能出现中文的,但是python3中代码就不需要进行声明字符集了
哈哈爽歪歪了,还好直接用python3 方便好用呀。
python2 和 python3 库名变更
Old Name |
New Name |
_winreg |
winreg |
ConfigParser |
configparser |
copy_reg |
copyreg |
Queue |
queue |
SocketServer |
socketserver |
markupbase |
_markupbase |
repr |
reprlib |
test.test_support |
test.support |
Python 安装
Win下 安装超级简单,只需要去到官网下载exe安装文件,然后双击安装就好了,如下:
下载地址为:https://www.python.org/downloads/windows/ 下载相应版本,安装即可。
Python 解释器
#!/usr/bin/env python
当我们编写 Python 代码时,我们得到的是一个包含 Python 代码的以 .py 为扩展名的文本文件。要运行代码,就需要 Python 解释器去执行 .py 文件。由于整个 Python 语言从规范到
解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写 Python 解释器来执行 Python 代码(当然难度很大)。事实上,确实存在多种 Python解释器。
变量
变量俗称可变的量,声明一个变量的目的是为了后面的调用,所以声明变量业内有一些规则,但是不强制,虽说变量名可以随便定义,但是定义的变量不规范的话,别人看你代码的话,肯定的非常淡定的说一句“这代码写的太low了”
简单说一下变量名的命名规范:
- 驼峰式
驼峰式:ConsumerUserName 就是每个单词的首字母大写
- 下标式
下标式: consumer_user_name 就是每个单词之间都用下划线隔开
- 不能使用的变量(python预留的关键字)
['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']
- 设定一个不想被更改的变量,我们可以是用全大写,比如:AGE = 29
>>>Name = 'Jock'
>>> print(Name)
Jock
>>>AGE = 29 >>> print(AGE) 29
关于变量的内存地址
>>>Name = 'Jock' #我们先在内存中开辟一块空间并把变量指向Name
>>> id(Name) #查看一下这块空间的内存地址是多少
>>> Name2 = Name #我们把变量Name2也指向Name这个变量
>>> id(Name2) #看一下Name2的这个变量指向的内存地址是多少
>>> Name = 'test' #开辟第二块空间,并把Name变量指向新的内存空间
>>> id(Name) #查看Name指向的内存地址
>>> id(Name2)#在查看Name2指向的内存地址
经过上述的内容,我们大概能得出如下的结论:
当创建一个变量的时候并赋予这个变量一个值,计算机大概做了如下的操作:开辟一块内存空间,并把变量指向这个内存空间。
当用一个变量指向另一个变量的时候,计算机并不是指向了这一个变量,而是指向了这一个变量指定的内存空间,
当第二次指向生效后,第一次指向就不再生效了,故而Name变量指向了新的变量值,但Name2依旧没有改变
字符编码
1字节=8bit 又叫8位,最早的ASCII码就是占一个字节(8位) 8位也就是二进制0000 0000,二进制8位最大表示数字位255,由于老外并不知道地球的另一边有其他世界的存在,所以他就在0-255之间选择0-127作为英文的存放,还预留了一半的空间作为扩展。但后后来中国人发现预留的这些空间远远不够存放中国博大精深的所有汉字,但是中国人有办法,中国人在128-255中间取了一部分用于存放汉字的索引,也可以说只要查找的位置落到了这一部分就代表着要存放汉字,在1980年中国的人们自己又创建了一个表存放中国汉字就产生了GB2312其中共收录了7445个字符,包括6763个汉字和682个其它符号;但是中国实在是博大精深在1995年又诞生了GBK编码共收录21886个符号,它分为汉字区和图形符号区,汉字区包括21003个字符。2000年的 GB18030是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。现在的PC平台必须支持GB18030,对嵌入式产品暂不作要求。所以手机、MP3一般只支持GB2312。
显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多
由于Unicode浪费了存储空间,无论存放中文还是英文都要是用16位来存放,平时50G的数据,使用Unicode就要使用100G,这显然不合适,这样就有了UTF-8的编码,这个编码存放英文将占用1个字节,存放中文占用3个字节。
如果使用python2里面不声明编码字符集,直接写中文那肯定会报错,因为他使用的是ASCII编码,如果使用中文,需要声明编码字符集位UTF-8就能解决问题了,如下:
root@test ~]# python sayhello.py
File "sayhello.py", line 2
SyntaxError: Non-ASCII character 'xe4' in file hello.py on line 2, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
bogon:d1 sean$ cat hello.py
#!/usr/bin/env python
print '你好,世界!'
[root@test ~]# python sayhello.py
你好,世界!
[root@test ~]# cat sayhello.py
#!/usr/bin/env python
#-*- coding:utf-8 -*-
print '你好,世界!'
python注释
单行注释使用#号
多行注释使用6个单引号或双引号
多行注释还可以一次性打印多行:
>>> test = ''' ... name = Jock ... age = 29 ... job = it ... ''' >>> print test name = Jock age = 29 job = it >>>
>>> name = input('please input your name:')
please input your name: Jock
>>> print (name)
Jock
>>>
用百分号“%” 用format函数
name = "Xiao lizi"
name2 = name
print("my name is",name)
name = "Xiao Huo"
print (name,name2)
name = input("Nane:")
age = input("Age:")
job = input("Job:")
salary = input("Salary:")
info='''
--------------my name is %s -----------------
Name:%s
Age:%s
Job:%s
Salary:%s
'''%(name,name,age,job,salary)
info2='''
--------------my name is {_name} -----------------
Name:{_name}
Age:{_age}
Job:{_job}
Salary:{_salary}
'''.format(_name=name,_age=age,_job=job,_salary=salary)
print(info2)
li_age = 29
guess_age =int(input("age:"))
if guess_age == li_age:
print("yes you are right")
break
elif guess_age > li_age:
print ("think smaller")
else:
print("think bigger")
for循环
for循环就是在指定的情况下循环指定次
for i in range(3):
print ('loop:',i)
结果
loop: 0
loop: 1
loop: 2
for i in range(1,10,2):
print ('loop:',i)
结果
loop: 1
loop: 3
loop: 5
loop: 7
loop: 9
for...else...当前面的循环正常执行完,没有跳出,后面的else将被执行,各种拼接
for i in range(3): print ('loop:',i) else: print ('OK!') 结果 loop: 0 loop: 1 loop: 2 OK!
while 循环
i = 0
while i < 5:
print (i)
i += 1
结果
0
1
2
3
4
i = 0
while i < 10:
if i > 5:
break
print (i)
i += 1
else:
print ('ok')
break 与 continue 区别
在循环里面如果遇到break函数那么就跳出程序,如果遇到continue函数那么就跳出本次循环。
以上内容可以各种嵌套,玩出各种花式,就看大家的本领了 ,就写这么多吧。