01 python 入门基础知识

一、基础信息

  保存文件必须加“.py”后缀。

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

二、基础

2.1 标识符

  就是变量、函数、属性、类、模块等可以由程序员指定名称的代码元素。
构成标识符的字符均遵循一定的命名规则
Python中标识符的命名规则如下:

  • 区分大小写:Myname与myname是两个不同的标识符。
  • 首字符可以是下画线(_)或字母(包含亚洲的一些字符),但不能是数字。
  • 除首字符外的其他字符必须是下画线、字母数字
  • 关键字不能作为标识符。
  • 不要使用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 实现两个模块间的代码元素访问

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

三、数据类型

3.1 Python中的数据类型

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

3.2 整数类型(int)

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

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一切皆对象,所有对象都有一个布尔值:
  • 以下对象的布尔值为False:False, 数值0, None, 空字符串, 空列表, 空元组, 空字典, 空集合

3.6 数字类型的相互转换

  在Python的数字类型中,除复数外,其他三种数字类型如整数、浮点和布尔都可以相互转换,分为隐式类型的转换和显式类型的转换。
隐式类型的转换:自动转换, 数字之间可以进行数学计算,在进行数学计算时若数字类型不同,则会发生隐式类型的转换。
显式类型的转换:

  • eval 将“input”输入的函数直接转换为真实的数据类型
  • 通过**int( )、float( )、bool( )**进行转换
  • float转为整数,只取其中整数部分,小数部分直接舍去
  • 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支持两种循环语句:while和for:

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、return(函数和方法(类里面的函数)时使用), break和continue用于循环体中,而return用于函数中。

'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,开发语言)