Python的概述和pycharm的使⽤
⼀.Python的概述
1、什么是Python
Python是⼀种跨平台的计算机程序设计语⾔,是⼀种⾯向对象的动态类型语⾔,是⼀种解释型脚本语⾔,可以应⽤于Web和Internet开发、科学计算和统计、⼈⼯智能、教育、桌⾯界⾯开发、软件开发、后端开发等领域。Python的设计哲学是“优雅”、“明确”、“简单”,因此,Python开发者的哲学是“最好只有⼀种⽅法来做⼀件事”。
2、Python的特点
(1)Python是⼀个完全⾯向对象的语⾔
⾯向对象的思维⽅式:⾯向对象是⼀种思维⽅式,也是⼀门程序设计技术
要解决⼀个问题前,⾸先考虑是由“谁”来做,怎么做事情是“谁”的职责,最后把事情做好就⾏(对象为:“谁”)
要解决复杂的问题,就可以多个不同的对象,各司其职,共同实现,最终完成
(2)Python有⼀个强⼤的标准库
(3)Python社区提供了⼤量的第三⽅库(标准库强⼤,但不全⾯),当今最热门的都包含在内
3、Python的优缺点
(1)优点
简单,易学,免费,开源,⾯向对象,有丰富强⼤的库,扩展性强。
如果需要⼀段关键代码运⾏的更快或者希望某些算法不公开,可以把这部分程序⽤C或者C++编写,然后在Python程序中使⽤。
(2)缺点
运⾏速度慢(但运⾏速度慢对⽤户体验的影响远远不及⽹络延迟带来的影响,所以可以忽略该缺点)
国内市场较⼩
中⽂资料匮乏
4、什么是解释器和编译器,区别是什么
(1)解释器
解释器⼜叫做直译器,是⼀种电脑程序,能够把⾼级编程语⾔⼀⾏⼀⾏直接转译运⾏。解释器不会依次把整个程序转译出来,⽽是⼀⾏⼀⾏逐⾏转译,因此解释器的程序运⾏速度较为缓慢,可以⽤来运⾏解释型语⾔。
(2)编译器
编译器就是将⼀种语⾔(通常为⾼级语⾔)翻译为另⼀种语⾔(通常为低级语⾔)的程序,⼀个现代编译器的主要⼯作流程为:源代码–>预处理器–>编译器–>⽬标代码–>链接器–>可执⾏程序,可以⽤来运⾏编译型语⾔。
(3)解释器和编译器的区别
解释器:直接执⾏⽤编程语⾔编写的指令(逐⾏编译,不会得到额外的⽂件)
编译器:把源代码转换成低级语⾔代码(得到⼀个低级语⾔的可执⾏程序⽂件)
5、编译型语⾔与解释型语⾔的优点与局限
(1)编译型语⾔的优缺点:
优点:运⾏速度快、代码效率⾼、编译后的程序不可修改,保密性较好。
缺点:代码需要经过编译才可运⾏,可移植性差,只能在兼容的操作系统上运⾏。
(2)解释型语⾔的优缺点:
优点:可移植性较好,只要有解释环境,可以在不同的操作系统上运⾏。
缺点:运⾏需要解释环境,运⾏速度相对较慢,占⽤资源相对较多,代码效率相对较低。
⼆.Python解释器的安装和运⾏
1、如何安装Python3.6解释器
命令功能
tar zxf Python-3. -C /opt解压安装包,指定解压到/opt⽬录下cd /opt/Python-3.6.4/进⼊该⽬录下的解压好的Python3.6⽬录,进⼊后安装时可以提供安装所需环境
./configure --
prefix=/usr/local/python3 --with-ssl 检测安装python3需要的东西,安装时指定路径/usr/local/python3,检测过程中可能会遇到依赖关系等报
错,解决即可
yum install gcc -y安装gcc(c语⾔编译器)解决⼀些问题
yum install zlib zlib-devel openssl-devel
-y
安装这些安装包,解决剩下的⼀些依赖关系问题
./configure --
prefix=/usr/local/python3 --with-ssl
再次检测安装python3时需要的东西
make && make install make是⽤来编译的,它从Makefile中读取命令然后编译,make install是⽤来安装的,也是从Makefile中读
取命令,然后安装到指定路径
cd /usr/local/python3/bin进⼊到该⽬录下
./python3运⾏python3,看是否能进⼊python3解释器
pycharm python安装教程2、将新安装的Python3.6加⼊环境变量
命令功能
export PATH="/usr/local/python3/bin:$PATH"临时设定环境变量
python3查看是否能使⽤环境变量进⼊python3解释器echo export PATH="/usr/local/python3/bin:$PATH" >> /etc/profile将设定环境变量的命令追加到/etc/profile⽂件中,意为系统级的环境变量vim /etc/profile确认以下是否追加成功
source /etc/profile source运⾏以下该⽂件,使修改⽴即⽣效
三.Python的⼀些基本规则
1、Python中的语⾔习惯
Python的语句后不⽤加“;”,且对缩进要求严格。
2、Python2和Python3中默认运⾏环境不同
Python2中默认⽆法识别中⽂,Python3则可以,为了统⼀运⾏环境,可以做以下设定
# _*_coding:utf-8_*_ #在py⽂件中输⼊该⾏,意为使⽤UTF-8编码的⽅式运⾏。该编码是世界通⽤的语⾔编码,⽆论是中⽂、⽇⽂、韩⽂、还是阿拉伯⽂都可以正常显⽰
imgplay小女孩3、Python中的数据类型
(1)变量:使⼀个变量指向⼀个地址空间
>>> id(a) #查看a指向的地址空间
9322496 #查看结果
>>> b = a #把a赋值给b
>>> id(b) #查看b指向的地址空间
9322496 #查看结果,与a相同,因为指向是同⼀个地址空间
>>> id(2) #查看2指向的地址空间
9322496 #相同,因为a指向的是2的地址空间,b指向a的地址空间,也就是指向2的地址空间
(2)整形int#查看变量的数据类型
>>> type(a) #查看a的类型
<class 'int'> #结果:a为int(整形)
(3)浮点型float#此处将a的数据类型由int转换为float的结果赋给了b
>>> b = float(a) #转换a的类型为浮点型,将转换结果赋值给b
>>> type(b) #查看b的类型
<class 'float'> #结果:b为float(浮点型)
>>> b #查看b的值
2.0 #b为2.0(浮点型)
>>> a #查看a的值
2 #a为2(整形)(此处虽然转换过a的类型,不过在转换完成后,新的浮点型值的地址空间会⽴刻被系统回收,a的值仍然是原整形值的地址空间,不会发⽣改变,将转换结果赋值给b,可以让系统不回收新地址空间,因为新地址空间被b指向)
(4)字符串str
>>> b = "float(a)" #看上去像是将转换结果赋值给b,其实⽤引号引起来表⽰的是字符串⽽不是转换结果,所以b为字符串型
>>> type(b) #查看b的类型
<class 'str'> #结果:b为str(字符串型)
>>> b #查看b的值
"float(a)" #b的值为引号内的字符串,⽽不是该字符串的运⾏结果lambda电源怎么样
(5)bool型(bool型为⾮0即真,""意为0,其他皆为真(True),0为假(False))
>>> c = 0 #把0赋值给c,该0为整形
>>> bool (c) #查看c的bool值
False #为假(False)
>>> c = "0" #把"0"赋值给c
>>> bool (c) #查看c的bool值
True #为真(True),此时为真是因为,赋给c的值是⼀个字符串"0",字符串的"0"不是⼀个空值,字符串的""才代表0的意思,""为⼀个空值
>>> c = "" #把""赋值给c
>>> bool (c) #查看c的bool值
unix操作系统是一个什么系统False #为假(False),因为字符串的""就代表0,意为给c赋予⼀个空的值
>>> c = " " #把" "赋值给c
>>> bool(c) #查看c的bool值
True #为真(True),因为“ ”不是赋予空值,⽽是赋予⼀个空格的值给c,空格也是有值的,不代表空值,即不为0
(6)数据类型的转换,例为float转为int,转换为⼀瞬间完成的事情,在转换时给⼀个空间,转换完成后恢复,空间被回收,所以需要将转换的结果类型直接显⽰才可看到。或是将转换的结果赋给其他变量,查看其他变量的数据类型,这样可以保留空间。
>>> b #查看b的值
2.0 #b的值为2.0,是浮点型
>>> int(b) #输出转化b的值为int型的结果
2 #结果为2,是int型
>>> type(b) #查看b的类型
<class 'float'> #b仍为浮点型,因为在转化完成输出结果后,新的int型的地址空间被⽴刻回收,b的值仍为浮点型,没有发⽣改变
>>> type(int(b)) #查看输出转化b的值为int型结果的类型
<class 'int'> #该结果为int型(不代表b为int型)
(7)str型转换为int型在某些情况下是可⾏的,例如d,某些情况下不可⾏,例如c
>>> b =1.0 #将1.0赋值给b
>>> c="abc" #将"abc"赋值给c
>>> d="123" #将"123"赋值给d
>>> a #查看a的值
2 #为2(int型)
>>> b #查看b的值
1.0 #为1.0(float型)
>>> c #查看c的值
'abc' #为'abc'(str型)
html5新手开发工具
>>> d #查看d的值
'123' #为'123'(str型)
>>> int(b) #将b(float型)转化为int型的结果输出
1 #成功,结果为1(int型)
>>> int(d) #将d(str型)转化为int型的结果输出
123 #成功,结果为123(int型)
>>> ind(c) #将c(str型)转化为int型的结果输出
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'ind' is not defined #失败,报错,因为c不可以转化为int型
(8)如何在不退出的情况下删除变量,此处删除了变量c
>>> c #查看c的值
'abc' #为'123'
>>> del c #删除变量c
>>> c #查看c的值
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'c' is not defined #失败,报错,因为变量c已经删除,所以不可查看c的值
(9)⽐较数值时,数值必须为同⼀个数据类型才可进⾏⽐较
>>> age = input("age:") #将input("age:")的结果赋值给变量age
age:19 #输⼊19,意为输⼊的19将赋值给变量age
>>> age #查看age的值
'19' #为'19'(str型)
>>> age >18 #将age(str型)与18(int型)⽐较⼤⼩
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: '>' not supported between instances of 'str' and 'int' #失败,报错,因为input()的结果都为str型,age的值为str型,与18(int型)的数据类型不同,⽆法进⾏⽐较
>>> age = 19 #将19(int型)赋值给age
>>> age #查看age的值
19 #为19(int型)
>>> age >18 #将age(此时int型)与18(int型)⽐较⼤⼩
True #成功,age>18的结果为真
4、Python的输⼊与输出
(1)在python3.x中,input()时,会将所有数据全部转化为字符串型
>>> input('Num:') #将Num:后输⼊的值转化为str类型
Num:1 #输⼊1(int型)
'1' #转化为'1'(str型)
>>> input('Num:') #
Num:2.3 #输⼊2.3(float型)
'2.3' #转化为'2.3'(str型)
>>> input('Num:') #
Num:zxc #输⼊zxc(⾮正确格式的str型)
'zxc' #转化为'zxc'(str型)
(2)在python3.x中,如何使输⼊密码没有回显
>>> import getpass #import为动态加载类和函数的内置⽅法,如果⼀个模块经常变化就可以使⽤import来动态载⼊
>>> num = pass('请输⼊您的密码:') #pass()会显⽰提⽰字符串,关闭键盘的屏幕回显,然后读取密码,此处为了查看没有回显的密码,将结果赋值给num
请输⼊您的密码: #输⼊想要的密码,此时屏幕将没有密码的回显
>>> num #查看num的值
'123456' #查看到了没有回显的密码,证明密码是真实输⼊了的,只是没有回显
补充:user()
该函数返回登陆的⽤户名,不需要参数
该函数会检查环境变量LOGNAME,USER,LNAME,USERNAME,以返回⼀个⾮空字符串,若这些变量的设置为空,会从⽀持密码的数据库中获取⽤户名,否则会出发⼀个“不到⽤户”的异常。
(3)python2.x中,input()时,需要在提供数据时输⼊正确的数据类型,不会将数据转化为字符串型
>>> input('请输⼊:') #
请输⼊:1 #输⼊1(int型)winform异步更新界面
1 #结果为1(int型)
>>> input('请输⼊:') #
请输⼊:2.3 #输⼊2.3(float型)
2.3 #结果为2.3(float型)
>>> input('请输⼊:') #
请输⼊:zxc #输⼊为zxc,但此时类型错误,该输⼊⽅式不属于str型
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in <module>
NameError: name 'zxc' is not defined #类型错误,报错
>>> input('请输⼊:') #
请输⼊:'zxc' #输⼊为'zxc'(正确的str型)
'zxc' #结果为'zxc'(str型)
(4)python2.x中,raw_input的作⽤与python3.x中input()的作⽤相同
>>> raw_input('请输⼊:') #将请输⼊:后输⼊的值转化为str类型
请输⼊:1 #输⼊1(int型)
'1' #结果为'1'(str型)
>>> raw_input('请输⼊:') #
请输⼊:1.2 #输⼊1.2(float型)
'1.2' #结果为'1.2'(str型)
>>> raw_input('请输⼊:') #
请输⼊:asd #输⼊asd(⾮正确格式的str型)
'asd' #结果为'asd'(str型)
5、Python的格式化输出
>>> name="sms" #将'sms'赋值给name
>>> age=13 #将13赋值给age
>>> print("%s今年已经%d岁啦" %(name,age)) #%s为str型数据的占位符,%d为int型数据的占位符,后⾯的顺序为从左到右使⽤到的数据的先后顺序
sms今年已经13岁啦 #输出结果为“(str型的name的值)今年已经(int型的age的值)岁啦”
>>> money=10000000.234
>>> print("%s的⼯资是%f" %(name,money)) #%f为float型数据的占位符
sms的⼯资是10000000.234000 #输出结果为“(str型name的值)的⼯资是(float型money的值)”,默认float型的值保留6位⼩数
>>> print("%s的⼯资是%.1f" %(name,money)) #.1为输出时只保留⼩数点后1位
sms的⼯资是10000000.2 #输出结果的float型值只保留⼩数点后1位
>>> sid=1
>>> print("%s的学号是%.5d" %(name,sid)) #.5位输出时,int型数据为5位数,不⾜五位时在前⾯补0
sms的学号时00001 #输出结果的int型值有5位,不⾜时在前⾯补了0
>>> scale=0.1
>>> print("数据的百分⽐为:%.0f%%" %(scale*100)) #%%代表显⽰“%”,scale*100后,加上后⾯的%,就可显⽰百分⽐
数据的百分⽐为:10%
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论