Python是一种跨平台的计算机程序语言,是一种解释型的,面向对象的,带有动态语义的高级程序设计语言,最初用于编写自动化脚本,随着不断更新,越多被用于独立的,大型项目的开发。简单来说Python的特性如下:
【一、Python版本】
【二、Python文件后缀名】
【三、Python语言的别名】
【四、Python语言特点】
常见的Python软件
博客的学习前期使用IDLE,后期使用Pycharm,下面安装IDLE:
一、windows系统
1.去python官方网站进行软件下载:
3.选择合适的版本下载:
4. 进行下载即可:
注意:勾选最下面的选项,表示将其添加到系统的环境变量中,这样可以在cmd窗口直接运行Python,不用到指定目录下去。
5.验证是否安装成功,打开cmd窗口:输入python,出现下面的页面表示安装成功,可以试着测试简单功能。
也可以在电脑中找到一个python3.7的文件夹,包含IDLE(即是解释器也是编译器,可以直接在此编写代码进行结果的运行)
二、Linux系统:
在Linux系统和ios系统自带python解释器,不需要安装,默认2.7.5版本,输入Python验证是否安装python:
使用python -V查看python的版本:
使用python3 -V查看另一个版本
安装Pycharm教程
第一个程序,输出hello world:
Mystr='Hello,World!'
print(Mystr)
字符串可以用单引号或双引号表示
python运行程序的模式:
Python是一种解释性语言,Python在执行时,会先将.py文件中的源代码编译为字节码,再由Python虚拟机执行编译这些字节码,Python提供了一种中间编译结果保存机制。
【一、Windows系统】
IDLE直接运行:虽然可以直接在IDLE上面写代码,但是不方便,也可以在cmd窗口上打开IDEL,使用exit()退出此模式。
保存为文件运行:建立文件,IDLE运行显示结果,先建立一个新的文件夹,即点击newfile,将文件保存到自己设定的路径,尽量保存为英文即可,点击Run,第一个选项run model,因为python为解释性语言,所以直接运行即可。
cmd窗口直接运行:在cmd窗口上运行python程序,使用cd命令找到python代码存放的位置,运行python代码的格式:
cd /d 进入d盘
python 文件名
如:python hello.py #运行hello.py文件
cmd窗口通过python运行,即在cmd窗口上打开python,运行此程序
【二、Linux系统】
在Shell终端运行即可,使用vim创建一个文件,使用【python 文件名】这样的格式执行脚本,如下图所示:
【一、变量】
在程序运行几千可以改变的量称为变量,一个变量应该有一个名字,并在内存中占据一定的存储单元,在该存储单元中存放变量的值。变量名的本质:一段连续内存空间的别名,如下图所示:
故变量名就是引用对象和标识对象。python为动态语言,定义的变量类型会根据赋值运算符后面的值自动转换类型,不需要定义类型,直接写即可。
可以使用type查看变量类型,如:
a="hello"
print(type(a))
标识符是指Python语言中允许作为变量名或其他对象名称的有效符号,标识符规则即变量规则:
注意:一般大写的标识符我们约定为常量;下划线开头的标识符为内建标识符,一般认为私有的
【二、常量】
所谓常量就是不能变的变量,比如常用的数字常数Π就是一个常量,通常用全部大写的变量名标识变量,但是python的常量和变量定义的很模糊,只是口头上的保证,没有机制来保证值不变,想改变也可以。
【三、关键字】
关键字是Python语言的关键组成部分,不可随便作为其他对象的标识符,它有以下性质:
可以使用下面的代码查看所有的关键字
import keyword
keyword.kwlist
【一、input输入】
input作用:使用input函数获取键盘上输入的值,返回值为字符串类型,可以使用int(),float()等函数将其转换为我们需要的类型。
如:将键盘上的值保存到num中,此时的12为字符串,需要数字格式需要int()进行格式转换。下图所示:
num=input("请输入数字:")
print(type(num))
num=int(num)
print(type(num)) #查看num的类型
python没有char类型,无论单引号还是双引号都称为字符串类型
【二、print输出】
不需要导入其他文件,python在加载时会加载常用内置函数模块,print为内置函数,向屏幕打印指定对象的信息,使用格式如下:
注释的类型为字符类型,如:
a=10 #我是单行注释
Cons="This is oneline\
continue,end"#续行符,表示下面和这一行是一行
print(Cons)
"""
print("hello")
print(a)
多行注释
"""
s='''Python单行注释'''
print(type(s))
运行输出,可以看到注释都没有输出
Python采用缩进格式代替花括号
Python提供了基本的内建数据类型,如下表:
类型 | 含义 | 示例 |
---|---|---|
int | 整型类型 | 123 |
float | 浮点类型 | 2.3,1.2e6 |
bool | 布尔类型 | True,False |
NoneType | 空类型 | None |
complex | 复数类型 | 5+3j |
str | 字符串类型 | “hello",‘xyz’ |
list | 列表类型 | list=[1,2,3,4] |
tuple | 元组类型 | tup=(1,2,3,4) |
dict | 字典类型 | d={“python”:1,“C++”:2} |
【一、int整型】
Python可以处理任意大小的整数,包括负整数。Python2支持整型值后加L即长整型;Python3整数范围和机器字长有关,如32位或64位,所以Python中整型没有溢出问题。 在程序中表示的方法和数学上的写法一样,如1,100,0等。
整数类型按进制分为:
二进制、八进制、十六进制标识分别为b,o,x
一、十进制转换为其他进制
整数有符号,所以处理负数,结果会包含一个负号。
(一)使用自己独有的函数转换,处理结果带有进制标识
将十进制整数转化为二进制,八进制,十六进制的文本串即字符串,可以使用下列函数:
bin(x)#将x转换为二进制
oct(x)#将x转换为八进制
hex(x)#将x转换为十六进制
如下图:
转换结果包含进制标识符。
(二)使用统一的函数,转换结果不包含进制标识
使用函数format,使用格式为:
format(待转换整数,进制标识)
二、其他进制转换为十进制
使用int函数可以将不同进制转换整数,函数使用格式如下:
int(待转换字符,进制标识符)#表示将几进制转换为十进制
如下图所示:
【二、 float浮点型】
浮点数就是小数,之所以称为浮点数,是因为按照科学计数法表示时,一个浮点数的小数点位置是可变的,对于很大或者很小的数,必须用科学计数法表示,e表示10。如下图举例:
注意:Python中没有double类型,根据值大小进行分配,有垃圾回收机制;在运算过程中,如果有一个数为浮点数,那么运算结果为浮点数。
【三、 bool布尔型】
整型的子类,仅有2个值为:True,False,本质上是用整型的1,0分别存储的。在Python中值为0的任何的数字或者是空集如列表,元组,在Python中它的布尔值都是False
空值是Python里一个特殊的值,用None表示,None不能理解为0,因为0是有意义的,而None是一个特殊的空值,None和任何其他数据比较永远返回False,如下图所示:
【五、complex复数型】
如果j=√-1,则 j 是虚数,虚数的平方根为负数,复数=实数+虚数,Python中虚数用标记符 j 来标记,其他语言中没有这种类型,而Python中设计了这种类型。 复数可以是:复数,纯虚数,纯实数,如下图所示:
复数可以分离实数部分,虚数部分,函数如下:
复数.real #得到实部
复数.imag #得到虚部
使用函数可以求共轭复数,即两个实部相等,虚部互为相反数的复数互为共轭复数,函数如下:
复数.conjugate()
如下图所示:
【五、序列类型-str字符串】
字符串是以单引号或双引号括起来的任意文本,比如”abc",‘xyz’等。
(一)字符串的简单运算
可以使用反斜杠\对某些特殊字符进行转义,这样python就会将它”当作一个普通的字符,而不是特殊的标记,如打印\n而不是换行,如下图所示:
(三)长字符串的表示方式
当需要写多行字符串时,使用三个单引号或双引号代替普通引号:
"""
str
“”“
或
’‘’
str
‘’‘
这时可以在字符串中使用单引号/双引号不需要反斜杠进行字符转义,其他的例如\n还是需要转义的,如:
原始字符串以r开头,在普通字符中反斜杠\转义,不会输出\,但是在原始字符串中反斜杠可以转义,但是输出的字符串包含\, 如:
注意:原始字符不能以\结尾,因为不知道是否为字符串结束符:如:
(六)用户方便的字符串 && 编译器读取形式的字符串
我们从显示屏上看到的字符,编译器不能处理,那么为了解决这种情况,有两个函数为str和repr:
str函数:将值转换为合理形式的字符串,以便于用户理解,和print直接打印结果一样,如:
repr函数:会创建一个字符串,将其转化为供编译器读取的形式,如:
总结来说:str让用户更便于阅读,repr转换为python的合法表达式,可以用于整数转换为字符串。
【六、序列类型-list列表】
列表是一种强大的数据结构,序列中的么个元素都分配一个数字-位置,用方括号[]表示,为可变类型,从0开始编号,根据下标访问,如下图所示:
后面博客会详细学习此知识点
【七、序列类型-tuple元组】
列表类似,用小括号()表示,是不可变类型即元组的元素不能修改,按照下标访问,如下图所示:
【八、映射类型-dict字典】
字典为映射类型的容器,用大括号{}表示,类似哈希表的键值对,每个键值对key-value用冒号【:】分割,每个键值对之间用逗号【,】分割。可以根据键值访问值,即通过key访问到value,如下图所示:
假定a=10,b=10;
【一、算术运算符】
符号 | 意义 | 示例 |
---|---|---|
+ | 加法运算符 | a+b=10 |
- | 减法运算符 | a-b=10 |
* | 乘法运算符 | a*b=10 |
/ | 除法运算(返回浮点结果) | a/b=1.0 |
// | 除法运算(返回整数结果 | a/b=1 |
% | 模运算 | a%b=0 |
** | 指数运算符即幂运算符 | 2**3=8 |
注意:幂运算符比一元运算符优先级高,所以会先和**结合,那么负数幂运算时需要添加括号,如:
【二、 比较运算符】
符号 | 意义 | 示例 |
---|---|---|
== | 比较两个对象的值是否相等 | a==b结果为True |
!= | 不等于号比较两个对象值是否不相等 | a!=10结果为False |
> | 大于符号 | a>20返回False |
< | 小于符号 | a<20返回True |
>= | 大于等于 | a>=10返回True |
<= | 小于等于 | a<=10返回True |
注意,在比较时:
表达4大于3并且小于7,其他语言为:3<4&&4<7,但是Python为3<4<7即可,计算时小于运算符从左往右结合计算
【三、 逻辑运算符】
符号 | 意义 | 示例 |
---|---|---|
and | 逻辑与 | 5>3 and 2==1结果为False |
or | 逻辑或 | 5>3 or 2==1结果为True |
not | 逻辑非 | not 5>3 结果为Flase |
【四、赋值运算符】
符号 | 意义 | 示例 |
---|---|---|
= | 基本赋值运算符 | a=10 |
+= | 加法赋值运算符 | a+=10=a=a+10 |
-= | 减法赋值运算符 | a-=10 |
*= | 乘法赋值运算符 | a*=10 |
/= | 除法赋值运算符 | a/=10 |
//= | 取整赋值运算符 | a//=10 |
%= | 取余赋值运算符 | a%=10 |
**= | 幂赋值运算符 | a**=10 |
【五、按位运算符】
符号 | 意义 |
---|---|
& | 按位与 |
| | 按位或 |
~ | 按位非 |
^ | 按位异或 |
<< | 按位左移 |
>> | 按位右移 |
【六、成员运算符】
符号 | 意义 |
---|---|
in | 判断某个值是否在一个集合中,在返回True,不在返回False |
not in | 判断某个值是否不在一个集合中,不在返回True,在返回True |
【七、身份运算符】
符号 | 意义 |
---|---|
is | is判断左右两边的数在内存中是否为同一位置即引用一个对象,如果引用的是同一个对象那么返回True,否则返回False |
is not | 判断两个标识符是不是引用不同的对象 |
使用id(a)可以查看a的内存地址
运算符优先级:
由上至下,由高到低,同一优先级按照从左向右原则运算。
运算符 | 说明 |
---|---|
** | 指数运算符 |
~,+,- | 按位取反,正负号 |
*,/,%,// | 乘除,取模取整 |
+,- | 加减 |
>>,<< | 右移,左移 |
& | 按位与 |
^,| | 异或、或 |
<=,<,>,>= | 比较运算符 |
==,!= | 等于运算符 |
=,%=,/=,//=,-=,+=,*=,**= | 赋值运算符 |
is,is not | 身份运算符 |
in,not in | 成员运算符 |
not or and | 逻辑运算符 |
【一、普通赋值语句】
普通赋值语句为:
a=10
a变量第一次赋值,同时获得类型和值,因为:
Python中每个对象被创建时,都会获得一个身份id,可以使用id(对象)函数查看,同时会伴随一个引用计数器,计数有几个变量引用此对象。 但是对于浮点数变量和整数变量有着不同的规则,如下:
【(一)浮点数变量:】
浮点数每一个对象地址不一样,如下图所示:
【(二)整数变量:】
Python将相同的若干个小整数,默认范围为[-5,256]和部分仅包含数字,字母和下划线的字面常量字符串会被分配同一内存空间,因为这些对象比较常用,这种高效的存储方式可以优化程序的运行速度。 如下面的代码:
【二、增量赋值】
即-=,+=这样的,如:
a+=10
【三、链式赋值】
简单理解就是连续赋值,如下:
pi=PI=1.3456
从右向左赋值,先给PI,再给pi
【四、多重赋值】
当等号左右两边都以元组的方式出现时,称为多重赋值,如下:
赋值时,3.14159给PI,3给r,本质由两个步骤构成:
所以多重赋值有时也称为序列解包。
例如:利用此特性交换两个数的值,如下:
其中逗号是Python中用来创建一种特殊的数据结构称为元组的运算符,用圆括号括起来,那么此时(y,x)为(2,1)元组,给x,y即可,成功的交换了x,y的值。
加油哦!。