Python基础

一、基本语法

1.行与缩进

python使用缩进来表示代码块,不适用大括号
在这里插入图片描述

2.多行语句

反斜杠换行
在这里插入图片描述

3.数字类型

python有四种数字类型:
int:只有一种整数类型int 表示长整型
bool: true
float:浮点数 1.23
complex:复数 1.1+2.2j

4.字符串

python单引号和双引号使用完全相同
使用三引号(‘’’ 或 “”")可以指定一个多行字符串。
转义符
字符串 +链接 *运算符重复
字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始
没有单独的字符类型,一个字符就是长度为 1 的字符串
字符串的截取的语法格式如下:变量[头下标:尾下标:步长]

在这里插入图片描述
str[1:5:2]是指每隔一个字符(步长2)输出从第二个字符到第六个字符

5.同行显示多条语句

可以在同一行执行多条语句,语句之间分号分割
在这里插入图片描述

6.import 与 from…import

将整个模块(somemodule)导入,格式为: import somemodule

从某个模块中导入某个函数,格式为: from somemodule import somefunction

二、基本数据类型

python中变量无需声明,但是使用前必须赋值,赋值后才会被创建
变量就是变量,没有类型,python中类型是指变量所指向的内存中对象的类型

1.多变量赋值

在这里插入图片描述

2.标准数据类型

Number(数字)
String(字符串)
bool (布尔)
List (列表)
Tuple (元组)
Set (集合)
Dictionary (字典)
Python3 的六个标准数据类型中:

不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)

3.Number(数字)

python3有int float bool complex(复数)
python3 int就是长整型 python2中有Long 3中没有
可通过type()函数查询对象类型
在这里插入图片描述
bool是int子类 True和False可以相加

4.List(列表)

列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。

列表是写在方括号 [] 之间、用逗号分隔开的元素列表。

和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。

列表截取的语法格式如下:
变量[头下标:尾下标]
在这里插入图片描述
列表反转:

def reverse_list(input_list):
    return input_list[::-1]

5.Tuple(元组)

元组与列表相似,不同之处在于元组元素不能修改,元组写在小括号立,逗号隔开
在这里插入图片描述
下标啥的跟List和String一样
虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表
string、list 和 tuple 都属于 sequence(序列)
创建空元组和一个元素的元组:

tup1 = ()    # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号

6.Set(集合)

Python 中的集合(Set)是一种无序、可变的数据类型,用于存储唯一的元素。

集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作

创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
在这里插入图片描述

7.Dictionary(字典)

列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。

类似java的map

三、数据类型转换

隐式转换

自动将一种数据类型转换为另一种数据类型
当对不同数据类型进行运算,较低数据类型(整数)会转换为较高数据类型(浮点数),避免数据丢失。
在这里插入图片描述

显式转换

使用int() float() str()等预定义函数进行显示类型转换
在这里插入图片描述
int(x [,base])
将x转换为一个整数

float(x)
将x转换到一个浮点数

complex(real [,imag])
创建一个复数

str(x)
将对象 x 转换为字符串

repr(x)
将对象 x 转换为表达式字符串

eval(str)
用来计算在字符串中的有效Python表达式,并返回一个对象

tuple(s)
将序列 s 转换为一个元组

list(s)
将序列 s 转换为一个列表

set(s)
转换为可变集合

dict(d)
创建一个字典。d 必须是一个 (key, value)元组序列。

frozenset(s)
转换为不可变集合

chr(x)
将一个整数转换为一个字符

ord(x)
将一个字符转换为它的整数值

hex(x)
将一个整数转换为一个十六进制字符串

oct(x)
将一个整数转换为一个八进制字符串

四、运算符

算数运算符

** 幂,返回x的y次幂
/ 除,这个结果是带小数的!!!
// 取整除-往小的方向取整数
其余加减乘跟其他语言一样
在这里插入图片描述

比较运算符

==等于 !=不等于 <小于 >大于 <=小于等于 >=大于等于

赋值运算符

= += -=之类的跟java一样

python3.8新增海象运算符 := 可以在表达式内部为变量赋值

位运算符

按位运算符是把数字看作二进制来进行计算的

a&b:按位与
a|b:按位或
a^b:异或 同0异1
~a:按位取反
<<:左移 高位丢弃 低位补0
/>>:右移

逻辑运算符

a and b: a b都为true返回true
a or b:a或b为true返回true
not a:取反

成员运算符

a in b:a在b序列中返回true
a not in b:a不在b序列中返回true
在这里插入图片描述

身份运算符

a is b:a是否和b引用的是同一个对象 类似id(a)==id(b)
a is not b:啊是否和b引用的是不同对象

五、条件控制和循环语句

条件控制

if语句

if condition_1:
statement_block_1
elif condition_2:
statement_block_2
else:
statement_block_3
在这里插入图片描述

match…case

python3.10新增

match subject:
    case <pattern_1>:
        <action_1>
    case <pattern_2>:
        <action_2>
    case <pattern_3>:
        <action_3>
    case _:
        <action_wildcard>

case _: 类似于 C 和 Java 中的 default:,当其他 case 都无法匹配时,匹配这条,保证永远会匹配成功。

循环语句

while循环

while 判断条件(condition):
    执行语句(statements)……

在这里插入图片描述
如果 while 后面的条件语句为 false 时,则执行 else 的语句块。

while <expr>:
    <statement(s)>
else:
    <additional_statement(s)>

在这里插入图片描述

for循环

for <variable> in <sequence>:
    <statements>
else:
    <statements>

遍历列表:
在这里插入图片描述
遍历字符串:
在这里插入图片描述
计数:
在这里插入图片描述

range()函数

range(stop)
range(start, stop[, step])

参数说明:

start: 计数从 start 开始。默认是从 0 开始。例如 range(5) 等价于 range(0, 5)
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是 [0, 1, 2, 3, 4] 没有 5
step:步长,默认为 1。例如:range(0, 5) 等价于 range(0, 5, 1)

在这里插入图片描述
在这里插入图片描述

六、推导式

推导式是一种独特的数据处理方式,可以从一个数据序列构建另一个新的数据序列的结构体

列表推导式

[表达式 for 变量 in 列表] 
[out_exp_res for out_exp in input_list]

或者 

[表达式 for 变量 in 列表 if 条件]
[out_exp_res for out_exp in input_list if condition]

在这里插入图片描述
只保留长度大于三的字符串,并且转换为大写

字典推导式

{ key_expr: value_expr for value in collection }{ key_expr: value_expr for value in collection if condition }

在这里插入图片描述
以列表的值为key,值的长度为value创建字典

集合推导式

{ expression for item in Sequence }{ expression for item in Sequence if conditional }

在这里插入图片描述

元组推导式

(expression for item in Sequence )(expression for item in Sequence if conditional )

组推导式和列表推导式的用法也完全相同,只是元组推导式是用 () 圆括号将各部分括起来,而列表推导式用的是中括号 [],另外元组推导式返回的结果是一个生成器对象。
在这里插入图片描述
a是一个生成器对象 需要通过tuple转换成元组来打印

七、迭代器和生成器

迭代器

迭代器是访问集合元素的一种形式
迭代器是一个可以记住遍历的位置的对象。

迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。

迭代器有两个基本的方法:iter() 和 next()。

字符串,列表或元组对象都可用于创建迭代器:
在这里插入图片描述
在这里插入图片描述

生成器

在 Python 中,使用了 yield 的函数被称为生成器(generator)。

yield 是一个关键字,用于定义生成器函数,生成器函数是一种特殊的函数,可以在迭代过程中逐步产生值,而不是一次性返回所有结果。

跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。

当在生成器函数中使用 yield 语句时,函数的执行将会暂停,并将 yield 后面的表达式作为当前迭代的值返回。

然后,每次调用生成器的 next() 方法或使用 for 循环进行迭代时,函数会从上次暂停的地方继续执行,直到再次遇到 yield 语句。这样,生成器函数可以逐步产生值,而不需要一次性计算并返回所有结果。

调用一个生成器函数,返回的是一个迭代器对象。

在这里插入图片描述
使用yiled实现斐波那契数列:
在这里插入图片描述

八、函数

你可以定义一个由自己想要功能的函数,以下是简单的规则:

函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号 : 起始,并且缩进。
return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return 相当于返回 None。

前面都有例子,不再赘述

可更改(mutable)对象和不可更改(immutable)对象

在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。

不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变 a 的值,相当于新生成了 a。

可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。

python 函数的参数传递:

不可变类型:类似 C++ 的值传递,如整数、字符串、元组。如 fun(a),传递的只是 a 的值,没有影响 a 对象本身。如果在 fun(a) 内部修改 a 的值,则是新生成一个 a 的对象。

可变类型:类似 C++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后 fun 外部的 la 也会受影响

python 中一切都是对象,严格意义我们不能说值传递还是引用传递,我们应该说传不可变对象和传可变对象。
在这里插入图片描述
在这里插入图片描述

参数

必须参数

就是正常需要传入的参数

关键字参数

关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。

使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。

在这里插入图片描述
在这里插入图片描述

默认参数

调用函数时,如果没有传递参数,则会使用默认参数。
在这里插入图片描述

不定长参数

你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述 2 种参数不同,声明时不会命名。

def functionname([formal_args,] *var_args_tuple ):
   "函数_文档字符串"
   function_suite
   return [expression]

加了星号 * 的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。
在这里插入图片描述
加了两个星号 ** 的参数会以字典的形式导入

参考链接:菜鸟教程

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值