认识Python
前提安装好Python,这里使用3.13版本
如今Python作为变成姐最炙手可热的编程语言,它的使用途径涵盖绝大部分生活中需要的开发需要。
许多大型网站就是用Python开发的,例如YouTube、Instagram,还有国内的豆瓣。很多大公司,包括Google、Yahoo等,甚至NASA都大量地使用Python。
Python的优点:
- 简单
- 方便
追求的是,尽量写容易看明白的代码,尽量写少的代码。
Python适合的开发的应用类型:
- 网络应用(网站、后台服务等)
- 小工具(脚本)
- 包装其他脚本
- AI分析
- 数据处理
- ...
这样看Python是不是觉得有点万金油?实际上Python也就是这样,比起Java来说,Python也不遑多让
每门编程语言都有缺点,Python也有
Python的缺点其一:运行速度慢
- 和C相比非常慢,因为Python是解释型语言, 执行的代码会一行一行的翻译成机器码
- 翻译的整个过程非常慢
C是直接编译为机器码,所以非常快
尽管有性能缺陷,但大量的应用程序不需要这么快的运行速度,因为用户根本感受不出来。更别说现在还有其他的性能框架能在一定程度上替换掉影响不好的用户体验的效果。
Python缺点其二:代码不能加密
如果要发布Python程序,实际上就是发布源代码,但是呢,这个代码不能加密是针对原生的Python而言,如果使用其他插件还是可以对部分代码进行加密的(尽管说能破解掉就是了)
这个缺点主要体现在一些需要贩卖源码或者盗窃问题上
解释器
对于Python来说,可以合理的包含其他语言也是它的优势之一,这就不得不提到解释器了。
Python通过解释器,解释为各样的代码和显示内容。
CPython
当从Python官网下载并安装好Python3.x后,就直接获得了一个官方的解释器:CPython
- 这个解释器是C语言开发,所以是CPython。
CPython是使用最广的Python解释器
- IPython
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。
PyPy
PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。
绝大部分代码都可以在PyPy下运行,但需要注意,相同的Python代码在两种解释器下执行可能会有不同的结果。因为PyPy与CPython解释的方式是不一样的,如果需要使用PyPY,那么建议先了解一下PyPy和CPython的不同点。
Jython
Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。
IronPython
IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。
第一个Python程序
编辑器创建.py文件
创建一个.py文件,在文件内输入
print("hello Python")
然后我们运行这个.py文件
python 文件名.py
交互式输入输出
打开cmd窗口,输入python,进入Python的交互式命令模式
- input() 这个函数是输入函数,它代表接收用户输入的值,并且将输入的值返回;若没有接收的变量,则返回到界面。
可以照如下代码编写
- 示例1
>>> input()
测试
"测试"
>>>
- 示例2
>>> name = input()
zhangsan
>>> name
"zhangsan"
数据类型
整数
Python可以处理任意大小的证书,包括负整数
- 基本表示方法和数学上的写法一模一样
- 如:1,100,50,-100,0 ...
在Python中,可以使用十六进制表示整数,十六进制0x
前缀和0-9,a-f
表示。
- 如:
0xfff00
、0xa123e445bc2
对于很大的数字,例如:1000000000000,我们正常看是不是难以分清这个数有几个0?Python允许在数字中以_
分隔。因此,可以写成:1_0000_0000_0000
,这样完全是一样的
a = 1
b = 1.1
c = 0x11a
d = 100_000_000
print(a,b,c,d) # 1 1.1 282 100000000
注:Python中的整数没有大小限制
在其他语言中,整数是存在限制问题的,因为它受到了存储长度的大小限制。
浮点数(小数)
浮点数可以是数学写法;
- 1.23 2.11 5.1 等
但是对于很大或很小的浮点数,就必须用科学计数法表示。
我们将e
代替为10
如:
- 1.23*10^9 就是
1.23e9
- 12.3e8 就是
12.3*10^8
- 0.000012可以写成:
1.2e-5
整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精准的。
- 但是浮点数运算则可能会出现四舍五入的误差
e = 5.1
f = 5.1e2
g = 5.1e-2
print(e,f,g) # 5.1 510.0 0.051
注:Python中,浮点数没有大小限制,但是超出一定范围会被表示为
inf
(无限大)
字符串
字符串是以单引号''
或者""
括起来的任意文本;
注意:''和""本身只是一种表示方式,不是字符串的一部分,因此字符串'abc'只有a,b,c三个字符
如果要将''
符号本身定义为一个字符那么需要在''符号前面添加\
反斜杠标识
例如:
'I\'m zhangsan'
表示的内容为:
I'm zhansgan
转义字符\
可以转义很多字符,比如\n
表示换行,\t
表示制表符,字符\
本身也要转义,所以\\
表示的字符就是\
如果字符串内部有很多换行,用\n
写在一行里不好阅读,为了简化,Python允许用'''...'''
的格式表示多行内容(跟js的``相当),可以自己试试:
j = "Hello"
k = 'Hello'
l = '''Hello'''
m = """
Hello
Python
"""
str = "\t制表符,\n换行符,\\反斜杠,\'单引号,\"双引号,\r回车"
print(j,k,l,m)
# Hello Hello Hello
# Hello
# Python
print(str)
# 制表符,
# 回车符,\反斜杠,'单引号,"双引号,
布尔值(Boolean)
布尔值和布尔代数的表示完全一致,一个布尔值只有True
、False
两种值,要么是True
,要么是False
在Python中,可以直接用True
、False
表示布尔值(请注意大小写),也可以通过布尔运算计算出来:
h = True
i = False
print(h,i) # True False
在python中,涉及到布尔值运算,就可以使用and
、or
、not
运算
其作用与 &&、|| 、!的作用相同
and
运算是与运算,双方值都为True
,and
运算结果才是True
or
运算是或运算,双方只要其中有一个为True
,or
运算结果就是True
not
运算是非运算,它是一个单目运算符,把True
变成False
,False
变成True
if age >= 18:
print('adult')
else:
print('teenager')
空值
空值是Python里一个特殊的值,用None
表示。None
不能理解为0
,因为0
是有意义的,而None
是一个特殊的空值。
拓展:在其他语言中的空值
- java——null
- js——null
- go——nil
变量
变量,可以看作是一个存储数值的物件,它的数据类型是任意的。
变量在程序中用一个变量名表示,变量名必须是大小写英文、数字和_
的组合,且不能用户数字开头
- 变量声明示例
a = 1
v = "test"
isShow = True
my_body = "good"
在Python中,=
号看作是赋值语句,其目的是将右侧数值赋值给左侧变量
而Python中,上述声明的变量都称作动态变量。
这样子的写法也称为动态语言,与之对应的是静态语言(Java、Golang)。
静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。
常量
常量通俗来说就是不能更改的变量,比如数学中π就是一个常量
在Python中,用 全部大写的变量名
来表示常量
PI = 3.1415926
而实际上,PI 仍然是变量,Python没有任何规定保证PI变量不会被改变
这个常量的称呼是我们开发自定的规定!
PI = 3.1415926
print(PI) # 3.1415926
PI = 3.14 # 可以更改,但是不建议更改。
print(PI)