因为需求, 需要用到py, 所以来学学py, 因为有java基础 一小时入门py语法是不成问题的, 但是仅仅入门基础语法而已, 不涉及算法,不涉及大数据,机器学习,人工智能, 但是py这么火爆,就在于这几个分支遍地开花,后续的路还好长啊
py的语法是真的简单, 跟java比,真的简单太多了, 而且他的代码很有条理, 因为他是严格控制缩进的,在一个缩进块中,就好比一个隐形的大括号一样,限制着变量的声明周期
命名:文件/标识符/关键字#
- 标识符:程序员定义的变量名,函数名
- 可以由字母数字下划线组成
- 不能用数字开头
- 不能和已经存在的关键字重名
- 关键字: Python内置的标识符
- 文件名: 不推荐文件名以数字开头,否则不能通过import关键字导入其他文件使用
注释#
- 单行注释使用 #
- 多行注释使用 ''' XXX '''
算数运算符#
+ - * / == != > < >= <= %#
加减乘除的使用方法和其他语言完全相同
//#
取整数 求商
9//2=4
**#
幂运算
2**3=8
列表常见运算#
print([1,2]+[3,4])#[1, 2, 3, 4]
print([1,2]*2)#[1, 2, 1, 2]
print(3 in [1,2,3])#True print(3 not in [1,2,3])#False
对全局列表使用+=操作,相当于extend函数**#
def test(list): list+=list print(list)#[1, 3, 4, 1, 3, 4] gl_list=[1,3,4] test(gl_list) print(gl_list)#[1, 3, 4, 1, 3, 4]
全局变量使用 = 赋值#
不可变 全局变量在函数内部 使用 = ,这种赋值操作, 原全局变量不会被影响
gl_num=1 def test(num): print(num)#1 num=2 print(num)#2 num+=3 print(num)#5 test(gl_num) print(gl_num)#1
在函数中, 如果全局变量是可变类型的, 如果在函数中往这个全局变量中添加内容了, 全局变量的值会受到影响
gl_num=[1,3,4] def test(num): print(num)#[1, 3, 4] num+=[1] print(num)#[1, 3, 4, 1] test(gl_num) print(gl_num)#[1, 3, 4, 1]
赋值运算符#
= += -= *= /= 除法赋值运算符 //= 取整赋值运算符 %= 取模赋值运算符 **= 幂赋值运算符
转义运算符#
\t 在控制台上输出一个制表符 \n 在控制台上输出一个换行符 \\ 反斜杠符 \' 输出单引号 \r 回车
变量#
变量的命名:#
- 区分大小写 Abc != abc
- 为了保证代码的质量, = 两边预留两个空格
- 所有单词全是小写字节
- 单词之间使用下划线连接 first_name
在py中,变量的类型是有不需要程序员指定,因为它是在运行时,由解释器自己推断出来的
例:
name="小明" # str 字符串类型 age=18 # int 整形 sex= True # bool 布尔类型 True False 首字母都是大写 height=1.78 # float 单精度小数类型 weiht=75.0 # float weiht2=75 # int
- 数字型
- int: 整形
- float: 浮点型
- bool:布尔型
- True: 所有非0的数字
- False:0
- 复数类型: complex
- 主要用于科学计算
- 非数字型:
- str:字符串
- 列表
- 元组
- 字典
在py2.0中 type(2 ** 32) --> int type(2 ** 64) --> long # 在py3.0中 全部都是 int, 在py中的计算能力,完爆其他语言 ```py print(type(2 ** 32)) print(type(2 ** 64)) print(type(2 ** 128)) print(type(2 ** 256)) print(type(2 ** 512)) print(type(2 ** 1024))
type函数可以直接查看变量的类型
print(type(name)) # 结果 <class 'str'>
- 相同类型之间的计算规则
- 数值型变量之间的计算
- bool型, True被转换成1 False被转换成0
- 字符串之间使用 + 拼接成连续串
- 不同类型数据之间的计算规则
- 字符串 * 整数 实现重复拼接串
print("$"*10)#$$$$$$$$$$
- 数字型变量和字符串之间不能进行其他类型操作
d=10 f="10.5" g=True print(d+f+g)#TypeError: unsupported operand type(s) for +: 'int' and 'str'
- 变量的输入输出
passwd = input("请输入密码") print(passwd) print(type(passwd))
- 类型转换
类型转换函数 int(X)#将输入转换成整数 float(X)#将输入转换成浮点型
- 变量的格式化输出
%s: 字符串 %d: 有符号十进制整数 %06d 表示输出的整形显示的位数, 不足的地方使用0补全 %f: 浮点型 %.02f 表示显示小数点后两位 %%: 输出% q=999 print("格式化的字符串是 %06d "%q)#000999 w=123.123456 e=123.123456 r=123.123456 print("格式化的字符串%.2f"%w)#123.12 print("%.1f %.2f %.3f"% (w,e,r))#123.1 123.12 123.123 t=0.25 print("%.2f%%" % t)#0.25%
- 全局变量
全局变量推荐定义在全部代码的最上方
全局变量的推荐命名规则
g_XXX gl_XXX
如何在 函数内部修改全局变量?
先使用 global 进行修饰,再修改
高级变量#
如: 列表 元组 字典 字符串 公共方法
在python中全部的非数字型变量都支持以下特点
- 都是一个序列, 也可以理解成容器
- 取值 []
- 遍历 for in
- 计算长度,最大/小 值 比较 删除
- 连接+ 重复*
- 切片
列表#
列表,在java叫数组
虽然列表可以存储不同类型的数据,但是绝大多数情况下, 用它存储相同类型的数据
使用 [] 定义, 数据之间使用 , 分隔
列表的索引从 0 开始
py中提供的常用操作
python 中对列表提供的操作 1. 增加 列表insert(索引,数据) 在指定位置插入数据 列表append(数据) 在末尾追加数据 列表extend(列表2) 将列表2的数据追加到列表 2. 修改 列表[索引]=新值 修改指定索引的数据 3. 删除 del列表[索引] 删除指定索引的数据 列表.remove[数据] 删除第一个出现的指定的数据 列表.pop 删除末尾的数据 列表.pop(索引) 删除指定索引的数据 列表.clear 清空列表 4. 统计 len(列表) 列表长度 列表.count(数据) 数据在列表中出现的次数 5. 排序 列表.sort() 升序 列表.sort(reserve=true) 降序排序 列表.reserve() 逆序,反转 6. 取索引 列表.index(数据) 返回数据在列表中的索引
- 把变量从内存中删除掉
del name_list[0] print(name_list[0])
- 第一个参数位置的self 直接忽略就行
- 迭代
for name in name_list: print(name)