本文共 6860 字,大约阅读时间需要 22 分钟。
高级:有高级的数据结构,缩短开发时间与代码量
面向对象:为数据和逻辑相分离的结构化和过程化编程添加了新的活力
可升级:提供了基本的开发模块,可以在它上面开发软件,实现代码的重用
可扩展:通过将其分离为多个文件或模块加以组织管理
可移植性:python是用C写的,又由于C的可移植性,使得 python可以运行在任何带有 ANSI C编译器的平台上
易学:python关键字少、结构简单、语法清晰
易读:没有其他语言通常用来访问变量、定义代码块和进行模式匹配的命令式符号
内存管理器:内存管理是由 python解释器负责的
yum -y install gcc make zlib zlib-devel openssl openssl-devel libffi-devel bzip2-devel ncurses-devel gdbm-devel readline-devel xz-devel sqlite-devel tk-develwget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgztar -zxvf Python-3.7.4.tgzcd Python-3.7.4/./configure prefix=/usr/local/python3make && make installln -s /usr/local/python3/bin/python3 /usr/bin/python3ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
支持的功能有
调试、语法高亮
Project管理、代码跳转
智能提示、自动完成
单元测试、版本控制
下载地址:
https://www.jetbrains.com/pycharm
分为收费的专业版和免费的社区版
[root@666 ~]# python3Python 3.7.4 (default, Nov 19 2019, 00:35:22) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linuxType "help", "copyright", "credits" or "license" for more information.>>>
python代码块通过缩进对齐表达代码逻辑而不是使用大括号
缩进表达一个语句属于哪个代码块
缩进风格
1或2:可能不够,很难确定代码语句属于哪个块
8至10:可能太多,如果代码内嵌的层次太多,就会使得代码很难阅读
4个空格:非常流行,范罗萨姆支持的风格
aaa: bbb ccc dd e
缩进相同的一组语句构成一个代码块,称之代码组
首行以关键字开始,以冒号:结束,该行之后的一行或多行代码构成代码组
如果代码组只有一行,可以将其直接写在冒号后面,但是这样的写法可读性差,不推荐
aaa: bbb
首要说明的是:尽管 Python是可读性最好的语言之一,这并不意味着程序员在代码中就可以不写注释和很多UNⅨ脚本类似, python注释语句从#字符开始注释可以在一行的仼何地方开始,解释器会忽略掉该行#之后的所有内容一行过长的语句可以使用反斜杠\分解成几行
aaa# bbb# cccaaa # bbb,ccc
分号;允许你将多个语句写在同一行上但是些语句不能在这行开始一个新的代码块因为可读会变差,所以不推荐使用
获取帮助
>>> help(print)
使用方式
>>> print('Hello World!')Hello World!>>> print('Hello'+'World!')HelloWorld!>>> print('Hello','World!')Hello World!>>> print('Heloo','World!',sep='***')Hello***World!>>> print('Heloo '+'World!',sep='***')Hello World!>>> print('usr','local','bin','python',sep='/')usr/local/bin/python>>> print('','usr','local','bin','python',sep='/')/usr/local/bin/python>>> print('Heloo','World!',sep='***',end='')Heloo***World!>>> >>> print('abc',end='\n')abc>>> print('abc',end='\n###\n***\n')abc###***>>> print('abc','bcd',end='\n###\n***\n')abc bcd###***
pythhon 字符串拼接
+ 先拼接在输出, 分次输出,使用分隔符分开sep 设置分隔符end 关键字用于输出完成以后追加的字符,默认 \necho abc | od -An -tx1
input 等待用户输入获得帮助>>> help(input)使用方式(注意,返回值一定是字符类型)>>> num input("Number:Number: 20)>>>num+10Traceback (most recent call last): File "", line 1, in TypeError: can only concatenate str (not "int") to str########################################## 练习创建名为ogin.py的程序文件程序提示用户输入用户名用户输入用户名后,打印欢迎用户#!/usr/local/bin/python3username = input ("请输入用户名")print ("欢迎使用用户名", username)##########################################
第一个字符只能是大小写字母或下划线后续字符只能是大小写字母或数字或下划线区分大小写python是动态类型语言,即不需要预先声明变量的类型
变量名全部采用小写字母简短、有意义多个单词间用下划线分隔变量名用名词,函数名用谓词(动词+名词)类名采用驼峰形式
变量的类型和值在赋值那一刻被初始化变量赋值通过等号来执行>> counter = 0>> name = bobpython也支持增量赋值>>>n += 1 #等价于n=n+1>>>n *= 1 #等价于n=n*1>>> i++File, line 1 i++ ^Syntax Error: invalid syntax################################ 练习print('-' * 20)print('| heloo woder! |')print('-' * 20)###############################
* 标准算术运算符+ - * / // / % *** 比较运算符< <= > >= == != <>* 逻辑运算符and not or################################ 练习>>> 3 + 2 5>>> 5 - 23>>> 3 * 515>>> 10 / 25.0 # 默认全部使用小数>>> 10 // 25>>> 10 // 33 # 它把小数给你切了>>> 20 // 36>>> 19 // 101>>> 10 % 3 # % 除完了取余数1>>> 10 % 42>>> 10 % 50>>> 3 ** 2 # 3的平方是99>>> 3 ** 3 # 3的立方是2727# 3的几次密>>> (2 + 3) * 10 / 2 ** 36.25>>> 2 < 3True # 成功>>> 3 <= 2False # 失败>>> aa = input()12>>> aa == 12False # 为啥?失败,因为你输入的是字符串>>> aa == '12'Trueor (或) and (与) not (非)>>> 1 <= 2 and 5 != 6True>>> 1 <= 2 or 5 != 5True>>> not 1 == 1False###############################
基本数字类型int :有符号整数bool:布尔值 True : 1 False : 0float :浮点数complex :复数 :练习 int('3.2') # 会报错 >>> int('32') 32 >>> float(33) 33.0 >>> float('3.2') 3.2 >>> int(3.2) 3 >>> bool(0) False >>> bool(-1) True >>> complex(1+2j) ** 2 (1+2j) >>> complex(1j) ** 2 (-1+0j)
数字表示方式
数字表示方式数字以0o或0O开头表示为8进制数数字以0x或0X开头表示16进制数数字以0x或0X开头表示16进制数
定义字符串
1.python中字符串被定义为引号之间的字符集合2.python支持使用成对的单引号或双引号3.无论单引号,还是双引号,表示的意义相同4.python还支持三引号(三个连续的单引号或者双引号) ,可以用来包含特殊字符5.python不区分字符和字符串
字符串切片
起始位置 <= 字符串获取范围 < 终止位置要显示的字符串长度 = 终止位置 - 起始位置 p y t h o n 0 1 2 3 4 5py_str[起始位置:终止位置:步长]>>> py_str = 'python'>>> py_str[0]'p'>>> py_str[2:4]'th'>>> py_str[2:]'thon'>>> py_str[:4]'Pyth'>>> astr = '123456789'>>> astr = [::2]# 提出集数'13579'>>> astr = [1::2]# 提出偶数'24680'
字符串连接操作
>>> py_str = 'python'>>> is cool = 'is Cool'>>> print is Cool
工厂函数int float bool |str
定义列表
>>> alist = [1,2,3,4,5,"python","aa","bb","cc"]>>> alist[1,2,3,4,5,"python","aa","bb","cc"]>>> alist[:5][1,2,3,4,5]>>> alist[-3:]['aa','bb','cc']>>> alist[5][-2:]'on'>>> alist = ["hello","world"]>>> alist['hello'],['world']>>> alist[1]'world'>>> alist[1] = 'lyy'>>> alist['hello','lyy']
列表操作
>>> teacher=["yy"]>>> teacher['yy']>>> teacher.append("rka")>>> teacher['yy', 'rka']>>> teacher+=["dd"]>>> teacher['yy', 'rka', 'dd']>>> 'qq' in teacherFalse>>> 'qq' not in teacherTrue>>> 'dd' in teacherTrue>>> 'd' in teacherFalse>>> 'd' in teacher[2]True
>>> teacher = ('yy', 'rka', 'dd')>>> teacher('yy', 'rka', 'dd')>>> teacher[1:2]('rka',)>>> teacher[2] = 'qq'Traceback (most recent call last): File "", line 1, in TypeError: 'tuple' object does not support item assignment>>> teacher + ("qq",)('yy', 'rka', 'dd', 'qq')>>> teacher += ("qq",)>>> teacher('yy', 'rka', 'dd', 'qq')# 这个写法容易让我们误解
>>> alist = [1,2,3]>>> id(alist)139848167139736
字典的定义及操作
]# ss -ant |awk '{A[$1]+=1}END{for(a in A)print A[a]}']# ss -ant]# ss -ant |awk '{A[$1]++}END{for(a in A) print A[a],a}'>>> A["LISTERN"] = 0>>> A["LISTERN"] += 1>>> A["LISTERN"] += 1>>> A["LISTERN"] += 1>>> A["ESTAB"] = 0>>> A["ESTAB"] += 1>>> A["ESTAB"] += 1>>> A{ 'ESTAB': 2, 'LISTEN': 3}
按存储模型分类
标量类型:数值、字符串
容器类型:列表、元组、字典
按更新模型分类:
可变类型:列表、字典
不可变类型:数字、字符串、元组
按访问模型分类
直接访问:数字
顺序访问:字符串、列表、元组
一映射访问:字典
int 整数float 浮点bool 布尔str 字符串 字符串切片 py_ str[起始位置:终止位置:步长] 起始位置 <= sub_ str < 终止位置 字符串拼接 py_ str += new_str 字符串重复若干次 py_ str *= 20list 列表 子对象获取使用切片语法 py_list[index] py_list[起始位置:终止位置:步长] 添加对象到列表 py_list.append (新的对象) py_list += [新的对象] 列表是可以改变的 py_list[index] = 新对象tuple 元祖 元祖使用() 元祖里所有读操作和列表一样 元祖是不可变对象 py_tuple[index] =新对象 [报错]dict 字典 字典使用 { } 字典是key:value 键值对格式,可变对象 字典不支持下标和切片语法 字典调用直接使用py_dict["key"] 列表是有序的,字典是无序的
函数
print 向标准输出发送数据 sep 分隔符,默认是空格 end 结束符,默认是换行input 从标准输入读取字符串
转载地址:http://chnwi.baihongyu.com/