#####Python##### Python的起源:Python的创始人吉多.范罗苏母; 1989年圣诞节,吉多.范罗苏母为了在阿姆斯特丹打发时间决心开发一个新的解释程序作为ABC语言的一种继承(ABC语言是吉多参与设计的一种数学语言,专门为非程序员开发的); 1991年,第一个python解释器诞生,他是用C语言实现的并且能调用C语言的库文件(可扩展性非常强:在互联网上开源,世界上其他程序员看到觉得有功能不满足需要时)
1.Python 是什么? Python是一种解释式编程语言,由Guido van Rossum创建并发布于1991年; 开发人员可以在文本编辑器中编写Python(.py)文件,然后直接将文件输入给Python解释器直接解释执行,无需编译。 最新版本Python3,适用范围比较广的也有Python2 2.Python能做什么? 1)在服务器上使用Python创建web应用程序; 2)Python可以与软件一起创建工作流; 3)使用Python读写数据库系统或文件; 4)使用Python处理大数据和处理复杂的数学运算; 5)使用Python用于快速原型开发,也可用于生产版本的软件开发。 3.Python优点: 1)Python可以在不同平台上工作(Windows、Linux、Mac); 2)Python有一个类似英语的简单语法(为可读性设计的); 3)Python语法程序编码工作大大减少; 4)Python运行在解释器系统上,代码写完就可以执行(意味着开发原型非常快); 5)Python可以用过程方式、面向对象方式或函数方式来开发; 6)Python是用新行完成命令,其他编程语言使用分号或括号结束命令; 7)Python依赖缩进,使用空格来定义范围(循环范围、函数…),其他编程语言使用大括号来达此目的; ####Python编译安装### 1.Python安装 python --version ##命令行上查看是否已经安装python Python 2.7.5 ##本机已安装Python 2.7.5 版本 也可去官网下载(www.python.org) 2.Python3编译安装 1)需要以下安装包解压源码 2)tar zxf Python-3.6.4.tgz ##解压安装包(解压后出现Python-3.6.4目录) 3)解决安装依赖性
yum install gcc zlib zlib-devel openssl-devel -y #解决依赖性 ./configure --prefix=/usr/local/python3 --with-ssl --prefix :安装路径 --with-ssl:添加ssl加密 安装:make && make install ##必须完成这两步安装(时间比较长,请耐心等待)注意: 进入解压目录编译和安装 cd Python-3.6.4/ 解决完依赖性可以看见以下文件及目录 安装成功后可以查看到python3,如下图 测试: cd /usr/local/python3/bin ./python3 2.添加python3的命令到环境变量中 临时添加: export PATH="/usr/local/python3/bin:$PATH"
永久添加: 编辑~/.bashrc 文件 echo export PATH="/usr/local/python3/bin:$PATH" >> ~/.bashrc ##直接命令定向输出对文件~/.bashrc的编辑 ###python退出方式##
[root@localhost bin]# python3 Python 3.6.4 (default, May 23 2019, 18:41:28) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> ^C ## Ctrl+C 显示^C KeyboardInterrupt >>> exit ##exit退出报错 Use exit() or Ctrl-D (i.e. EOF) to exit ##exit()或Ctrl+D 才能退出####python运行程序### 1.python文件以.py结尾; 2.没有分号(编码规范PEP8) 3.严格按照缩进的语言(其他变成语言中,代码缩进只是为了可读性而python中缩进表示块代码) 4# coding:utf-8 ##支持中文 5./usr/local/python3/bin/python3 python文件 ##python运行 6.print语句通常用于输出变量
[root@localhost bin]# vim hellow.py ##编辑python文件,以.py结尾 [root@localhost bin]# cat hellow.py # _*_coding:utf-8_*_ ##支持中文 print('hello python') #没有分号(编码规范PEP8) print('hello linux' ) #严格按照缩进的语言 print('你好 python') [root@localhost bin]# python hellow.py ##运行 hello python ##输出的内容 hello linux 你好 python [root@localhost bin]# vim hellow.py [root@localhost bin]# cat hellow.py ##未添加中文解释 print('hello python') print('hello linux') print('你好 python') [root@localhost bin]# python hellow.py File "hellow.py", line 3 SyntaxError: Non-ASCII character '\xe4' in file hellow.py on line 3, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details ##“ character“ 报错不支持中文语言 [root@localhost bin]# vim hellow.py [root@localhost bin]# cat hellow.py ##缩进问题 print('hello python') print('hello linux') [root@localhost bin]# python hellow.py File "hellow.py", line 2 print('hello linux') ^ IndentationError: unexpected indent ##报错:意外缩进####python的变量### python变量名的命名规则: 1.变量名必须以字母或下划线开头; 2.变量名只能包含字母数字和下划线; 3.变量名不能以数字开头; 4.变量名区分大小写(count、Count和COUNT是三个不同变量)
注释让代码可读性更好,python也有注释功能: 注释行以#开头:注释一行; Dosctring/文档字符串 python还具有扩展的文档功能,称为discrtings; Dosctring 可以一行或多行;它的开头和结尾引用三重引号1)python无需声明变量,第一次为变量赋值时就会自动创建; 2)变量类型的查看:
>>> a = 3 ##给a赋值为3 >>> print(a) ##输出a 3 >>> type(a) ##查看类型 <type 'int'> ##int 整型 >>> b = 1.4 ##给b赋值为1.4 >>> print(b) 1.4 >>> type(b) ##查看类型 <type 'float'> ##float 浮点型 >>> c = 'westos' ##给C赋值 >>> print(c) westos >>> type(c) ##查看类型 <type 'str'> ##str 字符串 >>> c = 'what's'##给C赋值what's File "<stdin>", line 1 c = 'what's' ^ SyntaxError: invalid syntax ## 报错:语法错误(无效的语法) >>> c = "what's" ##方法一:给C赋值what's >>> print(c) ##输出 what's >>> type(c) ##查看类型 <type 'str'> >>> c = 'what\'s' ##方法二:给C赋值what's >>> print(c) what's >>> type(c) <type 'str'>bool型 ##(只有两个值:True False 非0即真)
>>> a = 1 ##给a赋值为1 >>> bool(a) ##bool 值a True ##真 >>> bool(0) ##bool 值0 False ##假 >>> bool('') ##bool 值('')引号之间没任何东西表示0 False >>> bool(' ') ##bool 值(' ')引号之间有一个空格表示非0 True3)变量不需要声明类型,在赋值后可以更改类型。 数据类型的转换:
>>> a = 3 ##a赋值为3 >>> type(a) ##查看类型为整型 <type 'int'> >>> float(a) ##转换为浮点型 3.0 ##输出的a变为浮点型 >>> b = float(a) ##给b赋值为浮点型的a >>> b 3.0 >>> type(b) <type 'float'> ##b值为浮点型 >>> int(b) ##转换为整型 3 ##输出整型 >>> str(b) ##转换为字符串 '3.0' ##输出字符串 >>> c = 'westos' ##给c赋值为字符串,字符串类型无法转换成整型和浮点型 >>> type(c) <type 'str'> ##字符串类型 >>> int(c) ##转换成整型 Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: invalid literal for int() with base 10: 'westos' ##报错 >>> float(c) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: could not convert string to float: westos4)在内存中删除一个变量:
>>> print(a) ##输出变量a 3 >>> print(b)##输出变量b 3.0 >>> del a 在内存中删除a变量 >>> print(a) )##输出变量 Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'a' is not defined ##报错:a未被定义为变量 >>> del b 在内存中删除b变量 >>> print(b) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'b' is not defined##python的输出和输入### python3.x版本的 input():接收任意数据类型 没有raw_input()
>>> input('Num:') Num:2 '2' >>> input('Num:') Num:abc 'abc' >>> import getpass >>> num = getpass.getpass('请输入密码:') 请输入密码: >>> num '123'python2.x版本的 -input():只支持正确的数值类型 -raw_input():支持数值类型和字符串类型
>>> input('Num:') Num:2 2 >>> input('Num:') Num:'redhat' 'redhat' >>> input('Num:') Num:redhat Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<string>", line 1, in <module> NameError: name 'redhat' is not defined >>> input('Num:') Num:True True >>> input('Num:') Num:redhat Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<string>", line 1, in <module> NameError: name 'redhat' is not defined >>> raw_input('Num') Numredhat 'redhat' >>> raw_input('Num:') Num:redhat 'redhat'###如果接收到的数值要进行比较的时候,一定要转换为同一种类型
>>> age = input('age:') age:19 >>> age '19' >>> age > 18 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'str' and 'int' >>> age = int(input('age:')) age:19 >>> age 19 >>> age > 18 True###python的格式化输出### %s :代表字符串的占位 %d:代表整型占位
%f:代表浮点型占位 %.xf(x:1,2,3,4,5)保留小数点后多少位
>>> money = 4815651.41561661 ##给money赋值 >>> print('%s的工资是是%f'%(name,money)) tom的工资是是4815651.415617 ##默认值显示小数点后的六位 >>> print('%s的工资是是%.3f'%(name,money)) ##指定保留小数点后的三位 tom的工资是是4815651.416 >>> money = 4815651.4 >>> print('%s的工资是是%.4f'%(name,money))##指定保留小数点后的四位 tom的工资是是4815651.4000 ##小数点后的数位不够就用0补 >>> name = 'haha' >>> print('%s的工资是是%.4f'%(name,money)) haha的工资是是4815651.4000##整数的占位:不够的位数 前面补0
>>> sid = 3 ##创建一个变量 >>> name = 'tony' >>> print('%s的编号是%d'%(name,sid)) ##格式化输出 tony的编号是3 >>> print('%s的编号是11111%d'%(name,sid)) ##指定赋予变量前的数字 tony的编号是111113 >>> print('%s的编号是%.6d'%(name,sid)) ##指定赋予变量前的位数,不够的位数 前面补0 tony的编号是000003#百分数的实现
>>> scale = 0.03 ##定义一个变量 >>> print('所占的比例是%.2f' %(scale)) ##输出 所占的比例是0.03 >>> print('所占的比例是%.2f' %(scale * 100)) 所占的比例是3.00 >>> print('所占的比例是%.2f%%' %(scale * 100)) 所占的比例是3.00%python输入输出练习 1.编辑Python文件,内容如下: python 输入输出练习.py ##执行文件 2.在命令行中执行:
>>> name = 'tony' >>> Chinese = float(input('语文:')) 语文:90 >>> math = float(input('数学:')) 数学:90 >>> English = float(input('英语:')) 英语:100 >>> score = (Chinese+math+English)/3 >>> print('%s的平均成绩是%.2f' %(name,score)) tony的平均成绩是93.33 >>> zhanbi = Chinese/(Chinese+math+English) >>> print("语文占总成绩的%.2f%%" %(zhanbi * 100) ) 语文占总成绩的32.14%####python中的算术运算符#### python2.x与python3.x的运算存在差异, 导入3.x的数字处理模块 from future import division 可以使得python2.x的计算结果与python3相同
+ ##加 - ##减 * ##乘 / ##除 % ##取余 // ##取整##python2.x###
kiosk@foundation40 ~]$ python Python 2.7.5 (default, Aug 2 2016, 04:20:16) [GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> 5/2 2 >>> 100/300 0 >>> 5.0/2 2.5 >>> 100/300.0 0.3333333333333333 >>> 5.0/2.0 2.5python3.x
[kiosk@foundation40 bin]$ ./python3 Python 3.6.4 (default, May 22 2019, 21:49:21) [GCC 4.8.2 20140120 (Red Hat 4.8.2-16)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> 5/2 2.5 >>> 100/300 0.3333333333333333 >>> 5.0/2 2.5 >>> 100/300.0 0.3333333333333333 >>> 5.0/2.0 2.5 >>>