Python的特点
- 高级:有高级的数据结构,缩短开发时间与代码量
- 面向对象:为数据和逻辑相分离的结构化和过程化编程添加了新的活力
- 可升级:提供了基本的开发模块,可以在它上面开发软件,实现代码的重用
- 可扩展:通过将其分离为多个文件或模块加以组织管理
- 可移植性: python是用C写的,又由于C的可移植性, 使得 pythonANSI可以运行在任何带有编译器的平台上
- 易学: python关键字少、结构简单、语法清晰
- 易读:没有其他语言通常用来访问变量、定义代码块 和进行模式匹配的命令式符号
- 内存管理器:内存管理是由 python解释器负责的
安装python
yum install -y gcc gcc-c++ zlib-devel openssl-devel readline-devel libffi-devel sqlite-devel tcl-devel tk-devel #安装依赖包
tar -xf Python-3.6.7.tgz
cd Python-3.6.7
./configure --prefix=/usr/local/
make && make install
Python运行方式
1)交互解释器
] python3
>>> #此时进入了python解释器
>>> exit() #退出,也可以ctrl+d
2)文件形式
] python hello.py #指定解释器
或者:
] chmod +x hello.py
] ./hello.py #赋予执行权限再执行
Python语法格式
1)语句块缩进
- 完全靠缩进表达代码逻辑,而不适使用大括号
- 缩进表达一个语句属于哪个代码块
- 采用4个空格(pycharm中一个tab为4个空格)
- 缩进相同的一组语句构成一个代码块,称之代码组
- 首行以关键字开始,以冒号:结束,该行之后的一行或多行代码构成代码组
- 如果代码组只有一行,可以将其直接写在冒号后面,但是这样的写法可读性差,不推荐
2)注释和续行
- 首要说明的是:尽管Python是可读性最好的语言之一,这并不意味着程序员在代码中就可以不写注释
- 和很多UNIX脚本类似,python注释语句从#字符开始,
ctrl+/
可以将选中行全部注释 - 注释可以在一行的任何地方开始,解释器会忽略掉该行#之后的所有内容
- 一行过长的语句可以使用反斜杠\分解成几行
3)同行多个语句
- 分号
;
允许你将多个语句写在同一行上 - 但是些语句不能在这行开始一个新的代码块
- 因为可读会变差,所以不推荐使用
输出语句
- 输出使用print函数,在python中函数调用必须用小括号。
- 如果输出字符串,则必须加引号,单双引号没有区别
print('Hello World!')
print(100) # 打印数字
print(hello) # 错误,因为hello没有加引号,python认为它是一个名字,可能是函数名或是变量名等名字,但是名字不存在
print('hao', 123) # 由于上方代码有错误,错误代码之后的代码不会被执行
输入语句
# 从键盘获取用户输入,使用input()函数
uname = input('username: ') # ()中的字符串是屏幕提示语
print(uname)
uname = input('请输入用户名: ')
print('欢迎'+uname+'用户!')
执行:
请输入用户名: nia
欢迎nia用户!
# 字符串中有变化的内容,可以使用这种形式:'%s: %s' % ('name', 20)
# %s是占位符,用字符串外面()中的相应内容替代,当只有一个%s的时候,()可以>不写
uname = input('请输入用户名: ')
print('%s%s%s' % ('欢迎用户', uname, '!'))
执行:
请输入用户名: dc
欢迎用户dc!
变量
- 变量名称约定
- 第一个字符只能是大小写字母或下划线
- 后续字符只能是大小写字母或数字或下划线
- 区分大小写
- python是动态类型语言,即不需要预先声明变量的类型
- 推荐采用的全名方法
- 变量名全部采用小写字母
- 简短、有意义
- 多个单词间用下划线分隔
- 变量名用名词,函数名用谓词(动词+名词)
- 类名采用驼峰形式
- 变量使用之前必须定义并赋值
变量赋值
- 变量赋值:变量赋值是一个自右向左的运算过程。将=号右边表达式计算出结果,
赋值给左边的变量
>>> a = 10
>>> a = a + 5 # 取出a的值加上5,再赋值给变量a
>>> a += 5 # 以上语句的简写
>>> a++ # 语法错误
>>> ++a # 没有错误,也不会自增,它是正正为正的意思
>>> import this # 显示python之禅
The Zen of Python, by Tim Peters
Beautiful is better than ugly. # 美胜丑
Explicit is better than implicit. # 明胜暗
Simple is better than complex. # 简胜繁
... ...
运算符
- 标准算术运算符
+
-
*
/
//
(取整数商)%
(取余)**
(幂运算)
>>> divmod(5, 3) # 同时得到商和余数
(1, 2)
>>> a, b = divmod(5, 3) # 商和余数分别赋值
>>> a
1
>>> b
2
- 比较运算符
<
<=
>
>=
==
!=
>>> 10 < 20 < 30 # python支持连接比较
True
>>> -10 < 20 > 15 # 可读性不好,不推荐
True
>>> -10 == -10 # 判断是否相等,必须是==
True
>>> 10 != 10 # 判断是否不等
False
- 逻辑运算符
and
not
or
>>> 10 > 9 and 9 < 12 # 只有and两边都为真,最终为真
True
>>> 10 > 9 and 9 < 2
False
>>> 10 > 9 or 2 > 10 # or两边有一侧为真,最终为真
True
>>> 10 > 20 or 2 > 10
False
>>> not 10 > 20 # not取反,将真变假,假变真
True
>>> not 10 > 2
False
>>> not (10 > 2) # 加括号增加可读性
False
数据类型
Python的数据属于某一种类型,相同类型的数据可以做运算,不同类型的数据运算会报错
# input()函数读入的数据一定是字符类型
>>> n = input('number: ')
number: 10
>>> n + 5 # 错误,字符串不能和数字相加
>>> int(n) + 5 # int函数将字符串'10'转成数字10
15
>>> n + str(5) # str函数可以将各种对象转成字符串
'105'
1)数字
基本数字类型
- int:有符号整数
- bool:布尔值
- False: 0
- True: 1
- float:浮点数
- complex:复数
数字表示方式
- python默认以十进制数显示(没有前缀)
- 数字以0o或0O开头表示为8进制数
- 数字以0x或0X开头表示16进制数
- 数字以0b或0B开头表示2进制数
2)字符串
- python中字符串被定义为引号之间的字符集合
- python支持使用成对的单引号或双引号无论单引号,还是双引号,表示的意义相同
- python还支持三引号(三个连续的单引号或者双引号),可以用来包含特殊字符
- python不区分字符和字符串
>>> s1 = """hello
... nice
... ban"""
>>> print(s1)
hello
nice
ban
>>> s1
'hello\nnice\nban'
>>> s2 = "tom\njerry\npeppa"
>>> print(s2)
tom
jerry
peppa
字符串操作
>>> s1 = 'python'
>>> len(s1) # 求长度
6
>>> s1[0] # 下标从0开始
'p'
>>> s1[5]
'n'
>>> s1[6] # 报错,下标没有6
>>> s1[-1] # 下标为负,表示从右开始取
'n'
>>> s1[-6]
'p'
>>> s1[2:4] # 取切片,起始下标包含,结束下标不包含
'th'
>>> s1[2:6] # 取切片时,下标越界不报错
'thon'
>>> s1[2:6000]
'thon'
>>> s1[2:] # 结束下标不指定,取到结尾
'thon'
>>> s1[:2] # 起始下标不指定,从开头取
'py'
>>> s1[:]
'python'
>>> s1[::2] # 2表示步长值
'pto'
>>> s1[1::2]
'yhn'
>>> s1[::-1] # 步长为负,表示从右向左取
'nohtyp'
>>> 't' in s1 # 't'在s1中吗?
True
>>> 'th' in s1 # 'th'在s1中吗?
True
>>> 'to' in s1 # 'to'在s1中吗?
False # to在字符串中不连续,为假
>>> 'to' not in s1 # 'to'不在s1中吗?
True
>>> 'hello' + 'world' # 字符串拼接
'helloworld'
>>> '*' * 50 # 字符串重得50次
'**************************************************'
>>> s1 * 5