python的创始人叫做吉多·范罗苏姆(Guido van Rossum)
python是一门解释型语言
解释型语言
优点:兼容性好(安装了解释器),修改代码后直接运行就可以了,部署快,灵活
缺点:每次运行都需要进行解释,性能不如编译型语言
编译型语言
优点:运行前做一次编译,编译后直接运行,程序执行效率高
缺点:修改的话就需要整个重新编译,平台兼容性差,需要根据不同的操作系统来编译
1.只有在import导入py文件时,才会产生pyc字节码文件,该字节码文件是可以代替源文件而直接执行的
2. 但每次执行py文件,产生的字节码并不会保留下来,也就是说,每次执行py文件,都是要重新经历一遍:py文件->字节码-->python解释器-->机器码,每次都是一个重新解释执行的过程。
python是一门语言,用这门语言写出的代码,需要由python的解释器去解释执行,解释器有如下分类:
- Cpython(最常用的版本)
Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。 - Jyhton
Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。 - IronPython
Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似) - PyPy(特殊)
Python实现的Python,将Python的字节码字节码再编译成机器码。 - RubyPython、Brython ...
PyPy,在Python的基础上对Python的字节码进一步处理,从而提升执行速度!
Linux中执行前需给予 hello.py 执行权限,chmod 755 hello.py
python头文件
#!/usr/bin/env python
# -*- coding: utf-8 -*-
注释
单行:#
多行:“”“”“” ‘’‘’‘’
执行脚本传入参数
Python有大量的模块,从而使得开发Python程序非常简洁。类库有包括三中:
- Python内部提供的模块
- 业内开源的模块
- 程序员自己开发的模块
Python内部提供一个 sys 的模块,其中的 sys.argv 用来捕获执行执行python脚本时传入的参数
1 2 3 4 5 6 |
|
执行
C:\Users\Administrator>python D:\python_test\hello.py arg1 arg2 arg3 [‘D:\\python_test\\hello.py‘, ‘arg1‘, ‘arg2‘, ‘arg3‘]
pyc文件
执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译之后产生的字节码。字节码通过反编译也可以得到代码
变量声明和引用
标识符命名
1.变量名只能是字母、数字、下划线
2.开头不能是数字
3.不要用关键字当做变量名
变量赋值
可以使用id(查看)
输入输出
python2
raw_input() 直接读取控制台的输入(任何类型的输入它都可以接收)。而对于 input() ,它希望能够读取一个合法的 python 表达式,即你输入字符串的时候必须使用引号将它括起来,否则它会引发一个 SyntaxError,raw_input() 将所有输入作为字符串看待,返回字符串类型。而 input() 在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型( int, float )
python3中input相当于python2中的raw_input
条件、分之、循环练习
1.输出 1 2 3 4 5 6 8 9 10
i=0 while i<10: i+=1 if i==7: continue else: print (i)
2.输出1-100中奇数
i=0 for i in range(1,101): if i%2==0: continue else: print(i)
3.输出1-100中偶数
i=0 for i in range(1,101): if i%2!=0: continue else: print(i)
4.计算1-2+3-4+5.....99
j=0 for i in range(1,100): if i%2!=0: j=j+i else: j=j-i print(j)
5.计算1+2+3+4..+100
num=0 for i in range(1,101): num=i+num print(num)
6.模拟登陆操作,3次机会
import getpass count=3 while count>0: name=input("请输入用户名:") passwd=getpass.getpass(‘请输入密码:‘) if name=="shuai" and passwd=="zhenshuai": print("帅哥来了!") break else: count-=1 if count>0: print("你还能蒙",count,"次!") else: print("滚!")