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.6.4.tgz -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解释器

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编码的方式运行。该编码是世界通用的语言编码,无论是中文、日文、韩文、还是阿拉伯文都可以正常显示

3、Python中的数据类型

(1)变量:使一个变量指向一个地址空间

>>> a = 2		#将2赋值给a
>>> 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的类型
	#结果:a为int(整形)

(3)浮点型float#此处将a的数据类型由int转换为float的结果赋给了b

>>> b = float(a)	#转换a的类型为浮点型,将转换结果赋值给b
>>> type(b)			#查看b的类型
		#结果: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的类型
		#结果:b为str(字符串型)
>>> b				#查看b的值
"float(a)"			#b的值为引号内的字符串,而不是该字符串的运行结果

(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值
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的类型
		#b仍为浮点型,因为在转化完成输出结果后,新的int型的地址空间被立刻回收,b的值仍为浮点型,没有发生改变
>>> type(int(b))	#查看输出转化b的值为int型结果的类型
		#该结果为int型(不代表b为int型)

(7)str型转换为int型在某些情况下是可行的,例如d,某些情况下不可行,例如c

>>> a = 2		#将2赋值给a
>>> 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型)
>>> 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 "", line 1, in 	
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 "", line 1, in 	
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 "", line 1, in 					
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 = getpass.getpass('请输入您的密码:')	#getpass.getpass()会显示提示字符串,关闭键盘的屏幕回显,然后读取密码,此处为了查看没有回显的密码,将结果赋值给num
请输入您的密码:		#输入想要的密码,此时屏幕将没有密码的回显
>>> num				#查看num的值
'123456'			#查看到了没有回显的密码,证明密码是真实输入了的,只是没有回显

补充:getpass.getuser()

该函数返回登陆的用户名,不需要参数
该函数会检查环境变量LOGNAME,USER,LNAME,USERNAME,以返回一个非空字符串,若这些变量的设置为空,会从支持密码的数据库中获取用户名,否则会出发一个“找不到用户”的异常。

(3)python2.x中,input()时,需要在提供数据时输入正确的数据类型不会将数据转化为字符串型

>>> input('请输入:')	#
请输入:1				#输入1(int型)
1						#结果为1(int型)
>>> input('请输入:')	#
请输入:2.3				#输入2.3(float型)
2.3						#结果为2.3(float型)
>>> input('请输入:')	#
请输入:zxc				#输入为zxc,但此时类型错误,该输入方式不属于str型
Traceback (most recent call last):
  File "", line 1, in 
  File "", line 1, in 
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%

6、Python中的运算符

运算符与shell中相同,下面举例演示:(输入学生的姓名,依次输入语文、数学、英语成绩,计算该学生的平均成绩,并显示该学生语文成绩占总成绩的百分比)

vim pingjun.py						#建立一个py文件并编辑

NAME=input('请输入学生姓名:')		#将输入的学生姓名赋值给NAME
YW=float(input('请输入该学生语文成绩:'))	#将输入的语文成绩赋值给YW
SX=float(input('请输入该学生数学成绩:'))	#将输入的数学成绩赋值给SX
YY=float(input('请输入该学生英语成绩:'))	#将输入的英语成绩赋值给YY
AVE=float((YW+SX+YY)/3)				#计算平均成绩,并转化为float型,将转化结果赋值给AVE
PERCENT=float(YW/(YW+SX+YY))		#计算语文成绩占总成绩的百分比,并转化为float型,将转化结果赋值给PERCENT
print('%s的平均成绩为:%.1f,语文成绩占总成绩的%.0f%%' %(NAME,AVE,PERCENT*100)	#打印“(NAME的值)的平均成绩为:(AVE的值保留一位小数),语文成绩占总成绩的(PERCENT*100的值)%”

python3 pingjun.py					#在python3解释器的环境下运行pingjun.py
请输入学生姓名:zxc					#输入zxc
请输入该学生语文成绩:50				#输入50
请输入该学生数学成绩:30				#输入30
请输入该学生英语成绩:20				#输入20
zxc的平均成绩为33.3,语文成绩占总成绩的50%	#输出结果计算正确

四.pycharm的安装与使用

1、安装并运行pycharm

下载pycharm压缩包

命令 功能
su - kiosk 切换到普通用户
tar zxf pycharm-community-2019.2.1.tar.gz -C /opt 解压pycharm压缩包
cd /opt/pycharm-community-2019.2.1/bin 进入到解压后的该目录
sh pycharm.sh 运行该程序,即可打开pycharm

2、pycharm的简单设定

命令 功能
/home/kiosk/PycharmProjects 默认项目保存路径
File–>New Project…–>修改名称–>create 创建新项目成功
File–>Settings–>Keymap 修改快捷键
Settings–>Editor–>Font 修改字体大小格式等
Editor–>File and Code Templates 修改创建文件时默认写入的代码内容,可在此写入# _coding:utf-8_来保证运行环境
Settings–>Project:xxx–>Project Interpreter 修改运行时的python版本,若没有则添加想要添加的python版本的路径,即可添加该版本
右键点击新建的Project–>New–>Python File 在此项目下新建py文件

3、pycharm的常用快捷键汇总

命令 功能
Ctrl+Alt+s pycharm设置界面(Settings)
Alt+insert 快捷创建文件
Ctrl+Alt+l 格式化python代码,使代码格式标准,若冲突,可修改快捷键
Ctrl+z 返回上一步
Ctrl+Shift+z 恢复返回上一步
Shift+F6 快捷重命名
Ctrl+/ 快速注释代码,若代码已经注释,则可以快速取消注释代码

你可能感兴趣的:(Linux,Linux)