01 python 要点

一、基础信息

  • 保存文件必须加“.py”后缀。
  • windows+r  一>  cmd  一>  调出默认系统程序运行。
  • 文件编码采用UTF-8    #  (encoding=utf-8)
  •  {ctrl+/}  将程序转换为注释,反之亦然
  •  tab 键  整体向右缩进,shift+tab   向左缩进
  •  ‘main’: 的作用就是控制这两种情况执行代码的过程,在if __name__ == '__main__’: 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而import到其他脚本中是不会被执行的。

 二、基础知识

2.1 标识符

  • 就是变量、函数、属性、类、模块等可以由程序员指定名称的代码元素。
  • Python中标识符的命名规则如下:
    • 1 区分大小写:Myname与myname是两个不同的标识符。
    • 2 首字符可以是下画线(_)或字母(包含亚洲的一些字符),但不能是数字。
    • 3 除首字符外的其他字符必须是下画线、字母和数字
    • 4 关键字不能作为标识符。
    • 5 不要使用Python的内置函数作为自己的标识符。

2.2 33个关键字

False, None, True   # 大写三个
assert '生效', def , lambda,  nonlocal,  
pass,  break,  continue,  return...等  # 30个小写

2.3 变量

在Python中为一个变量赋值的同时就声明了该变量,该变量的数据类型就是赋值数据所属的类型,该变量还可以接收其他类型的数据(可以多重赋值)
变量由三部分组成:

  • 标识:表示对象所存储的内存地址,使用内置函数id(obj)来获取。
  • 类型:表示的是对象的数据类型,使用内置函数type(obj)来获取。
  •  :表示对象所存储的具体数据,使用print(obj)可以将值进行打印输出。

2.4 语句

在Python中,一行代码表示一条语句,在一般情况下语句结束时不加分号

2.5 代码注释

在使用#(井号)时,#位于注释行的开头,#后面有一个空格,接着是注释的内容。
多行注释:通常使用三引号进行注释‘’‘   ’‘’

2.6 模块

在Python中一个模块就是一个文件,模块是保存代码的最小单位
 在模块中可以声明变量、函数、属性和类等Python代码元素

2.7 实现两个模块间的代码元素访问

# 通过这种方式会导入m2模块的所有代码元素,在访问时需要加相应的前缀,如“m2.”
import<'模块名'>:   
# 通过这种方式会导入m2中的x变量,在访问时不需要加前缀“m2”
from<'模块名'>import<'代码元素'>:   
# 可以给要导入的代码元素(m2中的x)一个别名x2
from<'模块名'>import<'代码元素'>as<'代码元素别名'>:  

三、数据类型

3.1  Python中的数据类型

  • 在Python中有6种主要的内置数据类型:数字、字符串(str)、列表、元组、集合、字典(后四个为容器类型)。 
  • Python中的数字类型有4种:整数类型(无小数点)、浮点类型 、复数类型、布尔类型(True/False ),布尔类型也是数字类型,它事实上是整数类型的一种。

3.2 整数类型(int)

  • Python中的整数类型为int类
  • 默认为十进制、包含二进制、八进制、十六进制。
  • 不论是几进制,如果没有特殊标注,输出时默认转换为十进制。
# 默认为十进制、包含二进制、八进制、十六进制            # 前面+(int )转为十进制
0b() (0为阿拉伯数字及英文字母B或b)为二进制开头        # 前面+(bin)转为二进制
0o() (0为阿拉伯数字及英文字母O或o)为八进制            # 前面+(oct)转为八进制
0x() (0为阿拉伯数字及英文字母X或x)为十六进制          # 前面+(hex)转为十六进制

3.3 浮点类型(float)

  • 小数做精确计算时需要导入Decimal模块。
  • 浮点类型主要用来存储小数数值,Python的浮点类型为float类
  • 可以采用科学计数法表示浮点类型。
round(a,x)  数学函数进行四舍五入,其中a是对象,x是四舍五入保留几位小数   

3.4 复数类型(complex)

  • 整数和浮点数(小数)在数学中被统称为实数
  • 与实数对应的是复数,复数在数学中被表示为:a+bi,其中a被称为实部,b被称为虚部,i被称为虚数单位。

3.5 布尔类型(bool)

  • ( True/False )任何类型都可以转换为布尔类型。
  • Python一切皆对象,所有对象都有一个布尔值:
  • 以下对象的布尔值为FalseFalse, 0,  None,  空字符串,  空列表,  空元组,  空字典,  空集合

3.6 数字类型的相互转换

在Python的数字类型中,除复数外,其他三种数字类型如整数、浮点和布尔都可以相互转换,分为隐式类型的转换显式类型的转换

  • 隐式类型的转换:自动转换,  数字之间可以进行数学计算,在进行数学计算时若数字类型不同,则会发生隐式类型的转换。
  • 显式类型的转换:
    • eval 将“input”输入的函数直接转换为真实的数据类型。
    • 通过int( )、float( )、bool( )进行转换。
    • float转为整数,只取其中整数部分,小数部分直接舍去。   # int(3.9) 一> 3
    • True为1,可以直接做算术运算。

3.7 字符串又被称为不可变的字符序列

  • 可以使用单引号’’,  双引号””,  三引号’’’  ’’’ 或””” ”””来定义。
  • 单引号和双引号定义的字符串必须在一行,可以通过“\n”执行跳行操作
  • 三引号定义的字符串可以分布在连续的多行。   

3.8 内置函数 range()

range()函数通常输出最后一位为"stop-1",不包括‘stop’,三种创建方式:

range(stop)       # 默认从0开始到 stop-1 的位置
range(start,stop) # range(1,5) 表示1-4的序列,中间用逗号
range(start,stop,step)

3.9  random函数

可以生成随机浮点数、整数、字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据等:

random.randint()  # 随机生一个**整数int类型**,可以指定这个整数的范围,同样有上限和下限值
random.choice()   # 随机从字符,列表,元组中取出一个元素

 第4章 运算符

4.1 算术运算符

算术运算符用于组织整数类型和浮点类型的数据,有一元运算符(+/-)和二元运算符之分:

+, -, *, /  # (加减乘除)
%      # (取余数)
**     # (求a的b次幂)
//     # (求小于a与b的商的最大整数, 注意负数的取余,一正一负,向下取余)

4.2 比较运算符

比较运算符用于比较两个表达式,其结果是布尔类型的数据,即True或False:

# is表示是否存储在同一地址文件
[==,  !=, >=, >, <, <=, is, is not, not True]

4.3 逻辑运算符

逻辑运算符用于对布尔型变量进行运算,其结果也是布尔型(True/False), 逻辑运算符有短路特征, 掐断后续运算:(可做短路验证)

# not 逻辑非, not a 判断时根据a值是否为False进行判断
# and 逻辑与(且), 同时为true才为true
# or  逻辑或, 有一个为or, 结果为true
[not, and, or, in, not in]

4.4 位运算符

位运算是以二进位(bit)为单位进行相互比较运算的,操作数和结果都是整数类型的数据。

# ~ 位反 ~x      将x的指按位取反
# & 位与 x&y     将x与y的值按与计算
# | 位或 x|y     将x与y的值按或计算
# ^ 位异或   x^y    将x与y的值按异或计算   
# >> 右移   x>>y    将x右移a位,高位采用符号位补位 数值变小
# << 左移   x<

4.5 赋值运算符

+=    # 加赋值       a+=b
-=    # 减赋值       a-=b
*=    # 乘赋值       a*=b        
/=    # 除赋值       a/=b     
%=    # 取余赋值     a%=b    在原值上取余
**=   # 幂赋值       a**=b   在原值上取幂
//=   # 地板除法     a=a//b  取商的整数值
&=    # 位与赋值     a=a&b
|=    # 位或赋值     a=a|b
^=    # 位异或赋值   a=a^b
<<=   # 左移赋值     a=a<>=   # 右移赋值     a=a>>b'''

4.6 运算符的优先级

# 1.小括号
()  
# 2.算数运算
**     # 几次方
~      # 位反    (奇怪的算法) {~a=(a+1)*-1}
+, -   # 正负
*/%//
+, -  # 加减
# 3.位运算
>>   <<   # 位移
&         # 位与 ( and )
^         # 位或与
|         # 位或 ( or )
# 4.比较运算
<, <=, >=, <>, !=, ==
not       # 逻辑非
# 5.布尔运算
and, or   # 逻辑与、逻辑或
# 6.赋值运算符
=

4.7 input()函数、赋值运算符

input输入文件类型为字符串类型(str), 如果需要计算需要对其进行转换, 赋值运算符为从右向左赋值。

a=b=c=20      # 支持链式赋值
a+=20         # 支持参数赋值  
a,b,c=1,2,3   # 支持解包赋值, 元组对元组, 元组对列表也可赋值

4.8 对象None

对象None用于表示数据值的不存在,但在内存中占用一定的空间, 经常用于变量的初始化,或将变量重置为 "数据不存在状态",  主要用于 重置为数据值不存在状态


第5章 程序流程控制


1996年,计算机科学家证明了这样的事实:**任何简单或复杂的算法**都可以由**顺序结构**、**选择结构**、**循环结构**这三种基本结构组合而成。

5.1 分支语句

5.1.1 if结构
必须以英文冒号结尾, 如果满足就执行,否则结束, if语句,下一行用四个半角空格。 

5.1.2 if-else结构   

x if '判断条件' else y   # 条件表达式

5.1.3 if-elif-else结构  
elif可以有多次使用,完成多次循环, 可以没有else, 但一个if条件语句下只能使用一个else。
5.1.4 嵌套if
可以相互嵌套使用。
5.15 pass语句
该语句什么都不做,只是一个占位符。

5.2 循环语句

Python支持两种循环语句:whilefor:
5.2.1 while语句
四步循环法:初始化变量、 条件判断、条件执行体(循环体)、改变变量

break, return   # 有异常会打断程序
print()  # print输出时中间可以用逗号取代加号,但中间会留空格
# 且加号只能用于类型相同的数据类型,类型不同时只能用逗号分隔

5.2.2 for语句
for ... in ... 表达从(字符串、序列等)中依次取值,又称为遍历, 如果不需要使用自定义的变量,可以将自定义变量写为“_”,只执行循环次数。

break, return    # 有异常会打断程序,不会通过else语句
for '变量' in '集合':          # 可迭代对象(包含字符串、列表、元组、集合和字典等)
{i*i for i in range(a, b)}    # 用于遍历

5.3 跳转语句

跳转语句能够改变程序的执行顺序,包括break、continue、raise、return(函数和方法时使用)。     #   break和continue用于循环体中,而return用于函数中

  • raise Exception 主动抛出自定义异常,抛出异常后,程序会全部退出,后续不再执行。
'break语句'
if '条件':
    break  # break语句用于强行退出循环体,通常与分支结构if一起使用

'continue语句'
for i in range(x):
    if '某条件':
        continue # continue用于结束本次循环,跳过未执行的语句,继续下一次循环

'raise'
raise Exception   # 主动抛出自定义异常,抛出异常后,程序会全部退出,后续不再执行

'return'
def ass:
    return 'xxxx'  # return 直接跳出函数, (用于函数中)

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