编译型:源码编译成可执行代码,机器直接执行,VB,C,C++;
解释型:源码一边编译一边执行,Basic,python,源码以明文保存,不能加密,只能公开;
中间型:预编译一次,然后一边解释一边执行,Java,c#,Python。Java运行在虚拟机上,源码预编译成中间代码,运行过程中再由解释器翻译成可执行代码。
Python的运行过程
在说这个问题之前,我们先来说两个概念,PyCodeObject和pyc文件。
我们在硬盘上看到的pyc自然不必多说,而其实PyCodeObject则是Python编译器真正编译成的结果。我们先简单知道就可以了,继续向下看。
当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。
当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。
所以我们应该这样来定位PyCodeObject和pyc文件,我们说pyc文件其实是PyCodeObject的一种持久化保存方式[https://www.cnblogs.com/alex3714/articles/5465198.html]。
ASCII码:一个字节;
unicode:两个字节,包含中文;
utf-8:英文一个字节,中文三个字节。
Python2默认使用ASCII存储,不支持中文,需要在程序头部加入:
# -*- coding:utf-8 -*-
Python3默认使用unicode存储,支持中文
单行注释:#
多行注释:’’’或者”””,python中单引号和双引号一样
’’’还可用于打印多行:
Input用于输入信息:
Python2中的raw_input和python3的input完全一样,不要使用python2中的input。
name=input(“username:”)
默认所有的输入均为字符串类型,如果需要输入其他数据类型,则需要强制类型转换。
age=int(input(“age:”))
格式化输出:推荐使用方法3和4,尽量避免使用方法1
方法1:拼接字符串
name=input("name:")
job=input("job:")
salary=input("salary:")
info='''
-----info----'''+'''
name:'''+name+'''
job:'''+job+'''
salary:'''+salary
print(info)
方法二:
使用占位符:%s(%s代表string,%d代表数字,%f代表浮点)
info2='''
****info of %s***
name:%s
job:%s
salary:%s
'''%(name,name,job,salary)
print(info2)
Print(type(age))输出变量age的数据类型。
方法3:推荐使用
使用format()
info3='''
+++info of {_name}+++
name:{_name}
job:{_job}
salary:{_salary}
'''.format(_name=name,
_job=job,
_salary=salary)
print(info3)
方法4:
使用format()
info4='''
+++info of {0}+++
name:{0}
job:{1}
salary:{2}
'''.format(name,job,salary)
print(info4)
密文输入:
import getpass
password=getpass.getpass(“password:”)
if 表达式:
执行语句
elif 表达式:
执行语句
else:
执行语句
使用while循环:
age_of_oldboy=50
count=0
while count<3:
count+=1
age = int(input("guess
age:"))
if age>age_of_oldboy:
print("think
smaller.")
elif age<age_of_oldboy:
print("think
bigger.")
else:
print("you
got it.")
break
else:
print("you
have trid too many times...")
使用for循环:
age_of_oldboy=50
for i in range(3):
age = int(input("guess age:"))
if age>age_of_oldboy:
print("think smaller.")
elif age<age_of_oldboy:
print("think bigger.")
else:
print("you got it.")
break
else:
print("you have trid too many times...")
for i in range(0,10,3):
print(i)
打印结果如下:
0
3
6
9
continue:跳出本次循环,进入下一次循环
break:结束整个循环