初识python
Posted css_一米阳光
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初识python相关的知识,希望对你有一定的参考价值。
一、为什么学习python语言
C和python、Java、C#等
C语言:代码编译得到机器码,机器码在处理器上直接执行,每一条指令控制CUP工作
其他语言:代码编辑得到字节码,虚拟机执行字节码并转换成机器码后再在处理器上执行
Python语言由C开发而来
对于使用:Python的类库齐全而且使用简洁,若实现同样的功能,Python10行代码可以解决,C则需要100行甚至更多
对于速度:Python的运行速度比C慢很多
Python和Java、C#等
对于使用:Linux有原装Python,其他语言没有;以上几门语言都有非常丰富的类库
对于速度:Python在速度上可能稍逊
所以Python和其他语言没有本质的区别,其区别在于:擅长某领域,人才丰富、先入为主。
二、Python的种类
1、Cpython
官方版本,使用C语言实现,使用最为广泛,Cpython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。
2、Jpyhon
Python的Java实现,Jpython会将Python代码动态编译成Java字节码,然后在JVM上运行。
3、PyPy(特殊)
Python实现的Python,将Python的字节码字节码再编译成机器码。
4、其他等等,,,,
三、Python入门
1、第一句Python
cmd管理器,输入python,运行含有print(\'hello world\')的hello.py脚本
python内部执行过程
2、解释器
上一句执行语句时明确指定hello.py脚本是由Python解释器来执行,
如果想要类似于执行shell脚本一样执行python脚本,则需要在hello.py文件的头部指定解释器
#!/usr/bin/env python
3、内容编码
python解释器在加载.py文件中的代码时,会对内容进行编码(默认ascill)
ASCII是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用8位来表示(一个字节),即2**8 = 256,所以,ASCII码最多只能表示256个符号。显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode
Unicode(统一码,万国码,单一码)是一种在计算机上使用的字符编码,Unicode是为了解决传统的字符编码方案的局限性而产生的,它为每种语言中的每个字符设定了同一并且唯一的二进制编码,规定虽有的字符和符号最少由16位来表示(2个字节),即2**16=65536
注:此处说的是最少2个字节,可能更多
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少2个字节,而是将所有的字符和符号进行分类。
所以,Python解释器在加载.py文件中的代码时,会对内容进行编码(默认ascill),如果是如下代码的话会报错
报错:ascill码无法表示中文
#!/usr/bin/env python
print(\'你好,世界\')
改正:应该显示告诉python解释器,用什么编码来执行代码,即:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
print(\'你好,世界\')
四、注释
当行注释:# 被注释内容
多行注释:"""被注释内容"""
五、执行脚本传入参数
Pyhon有大量的模块,从而使得开发Python程序非常简洁。类库包括三种:
(1)Python内部提供的模块
(2)业内开源模块
(3)程序员自己开发的模块
Python内部提供一个sys的模块,其中sys.argv用来捕获执行Python脚本时的传入参数
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import sys
print(sys.argv)
六、变量
1、变量声明
#!/usr/bin/env python
# -*-coding:utf-8 -*-
name = \'css\'
变量名为:name 变量值为:‘css’
变量的作用:昵称,其代指内存里某个地址中保存的内容
变量定义的规则:
变量名只能是字母、数字或下划线的任意组合
变量名的第一个字符不能是数字
变量名不能声明为以下关键字
[\'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\']
2、变量的赋值
#!/usr/bin/env python
# -*- coding:utf-8 -*-
name1 = \'css\'
name2 = \'tjy\'
name1 = name2
七:输入
#!/usr/bin/env python
# -*- coding:utf-8 -*-
name = raw_input(\'请输入用户名:\')
print(name)
输入密码时,如果想要不可见,则可调用getpass模块的getpass方法
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import getpass
pwd = getpass.getpass(\'请输出密码:\')
print(pwd)
八、控制流程和缩进
需求一、用户登录验证
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import getpass
name = raw_input(\'请输出用户名:\')
pwd = getpass.getpass(\'请输入密码:\')
if name == \'alex\' and pwd == \'cmd\':
print(\'欢迎alex\')
else:
print(用户名和密码错误)
需求二:根据输入内容输出其权限
#根据用户输入内容打印其权限
#alex ---- 超级管理员
#eric ---- 普通管理员
#tony,rain ---- 业务主管
# 其他 ---- 普通用户
name = raw_input(\'请输入用户名:\')
if name == \'alex\':
print(\'超级管理员\')
elif name == \'eric\':
print(\'普通管理员\')
elif name == \'tony\' or name == rain:
print(业务主管)
else:
print(普通用户)
九、while循环
1、基本循环
while 条件:
#循环体
#如果条件为真,那么循环体则执行
#如果条件为假,那么循环体不执行
2、break
break用于退出所有循环
while True:
print(\'123\')
break
print(\'456\')
3、continue
continue用于退出当前循环,继续下次循环
while True:
print(\'123\')
continue
print(\'456\')
十、练习题
#!/usr/bin/env python
# -*-coding = utf-8 -*-
# 1、输入1 2 3 4 5 6 8 9 10
while True:
numb = int(input(\'请输入一个小于11的数字:\'))
if numb == 7:
continue
elif numb > 10:
exit()
print(numb)
# 2、求1-100的所有数的总和
a = 0
b = 1
while True:
b = b + a
if a == 100:
break
a = a + 1
print(b)
# 3、求1-100以内的所有奇数
a = 1
while True:
if a % 2 == 1:
print(a)
if a == 100:
break
a = a + 1
# 4、求1-100以内的所有偶数
a = 1
while True:
if a % 2 == 0:
print(a)
if a == 100:
break
a = a + 1
# 5、求1-2+3-4+5...+99的和
a = 1
b = 0
c = 0
while True:
if b % 2 == 0:
b = b + a
if c % 2 == 1:
c = c + a
if a == 99:
print(c-b)
break
a = a + 1
# 6、用户三次登录机会
name = \'css\'
pwd = \'123\'
n = 1
while True:
username = input(\'请输入用户名:\')
userpwd = input(\'请输入密码:\')
if username == name and userpwd == pwd:
print(\'hello,%s\'%(username))
exit()
else:
n = n + 1
if n > 3:
break
以上是关于初识python的主要内容,如果未能解决你的问题,请参考以下文章
初识OpenGL 片段着色器(Fragment Shader)