Python基础知识学习

这是开始Python学习的第一篇笔记,之前的语法都忘差不多了,一切重新开始,花一两天时间迅速再把基本语法过一遍,为后面的学习做铺垫。😊

一.基本介绍

1.Python的功能

Python 是一种高级、通用、解释型的编程语言,它具有简洁、易读和具有丰富的标准库的特点。它是一种解释型语言,不需要预先编译,可以直接执行。这种特性使得开发过程更加快速和灵活,并且可以跨平台运行。

特点:

  • 面向对象编程
  • 大量的标准库
  • 广泛的第三方库
  • 可移植性:
  • 动态类型:
  • 多种编程范式支持:

总而言之,Python是一种功能强大、易学易用的编程语言,适合于各种任务,包括脚本编写、Web开发、数据分析、机器学习和人工智能等领域。

2.使用工具

首先要下载安装Python,并配置好环境变量,具体可以看这位博主的配置步骤:安装配置教程
在这里插入图片描述

完成之后,可以试着在终端运行,然后打开配置好PyCharm软件,开始python学习。
在这里插入图片描述

二.注释和控制台

注释是为了增加代码的可读性,给程序员看的,不执行

1.单行注释

单行注释:# 后面跟上注释内容

# 这是单行注释不执行

2.多行注释

多行注释:以 ‘’’ 开始,并以 ‘’’ 结束,我们称之为多行注释。

 ''' 
多行注释
 '''

3.控制台输出

输出到控制台为:print,C语言,java…都是这个

  • \n:换行
  • print默认是自动换行的
  • end指定字符为空则不会主动换行了
    如下所示:
print("我是:",end="")    
print("波哥")

输出:我是波哥(在一行显示出来)

4.控制台输入

  • 在Python中,获取键盘输入的数据的方法是采用 input 函数。
    -示例:
    控制台提示请输入密码:
    输入密码并把数值保存给password
    然后输出:您刚刚输入的密码是:+你刚刚输入的密码
password = input("请输入密码:")
print('您刚刚输入的密码是:%s' % password)

其中输入默认为字符串类型

三.变量及数据类型

1.变量

定义变量的语法为: 变量名 = 变量值 。(这里的 = 作用是赋值。)
定义变量后可以使用变量名来访问变量值。

weather = "今天天气真好"
print(weather) # 注意,变量名不需要使用引号包裹

2.数据类型

当涉及到Python的数据类型时,有一些常用的基本类型和一些高级类型,这里做简单了解。

  1. 整数(int):表示整数值,如1、-5、100等。
  2. 浮点数(float):表示浮点数值,如3.14、-0.5、2e3等
  3. 字符串(str):表示字符序列,用单引号(‘’)或双引号(“”)括起来
  4. 布尔值(bool):表示逻辑值,只有两个取值:True和False。
  5. 列表(list):可变有序集合
  6. 元组(tuple):不可变有序集合
  7. 集合(set):无序的可变集合
  8. 字典(dict):键值对
  9. None:表示空值

但是要注意的是python的变量在命名时,不需要写数据类型,变量名 = 变量值,它是根据变量值来判断变量的数据类型的。

3.类型查看

type()来查看数据类型。

st='www'
print(type(st))

输出:<class ‘str’>,说明它是字符串类型

其中输出时,将字符串+数字类型会将其同化。

4.类型转换

  • int(x): 将x转换为一个整数
  • float(x) :将x转换为一个浮点数
  • str(x): 将对象 x 转换为字符串
  • bool(x) :将对象x转换成为布尔值

使用示例:
转换完后,在使用type()函数检验一下。

# 将x转换为整数
x = "10"
x_int = int(x)
print(x_int)  # 输出:10
print(type(x_int))  # 输出: <class 'int'>

# 将x转换为浮点数
x = "3.14"
x_float = float(x)
print(x_float)  # 输出:3.14
print(type(x_float))  # 输出: <class 'float'>

# 将x转换为字符串
x = 10
x_str = str(x)
print(x_str)  # 输出:'10'
print(type(x_str))  # 输出: <class 'str'>

# 将x转换为布尔值
x = 0
x_bool = bool(x)
print(x_bool)  # 输出:False
print(type(x_bool))  # 输出: <class 'bool'>

四.标识符和关键字

1.命名规范

  1. 计算机编程语言中,标识符是用户编程时使用的名字,用于给变量、常量、函数、语句块等命名,以建立起名称与使用之间的关系。
  2. 起一个有意义的名字,尽量做到看一眼就知道是什么意思(提高代码可 读性) 比如: 名字 就定义为 name
    定义学生 用 student
  • 标识符由字母、下划线和数字组成,且数字不能开头。
  • 严格区分大小写。
  • 不能使用关键字。

注:为了美观,一般命名时,使用驼峰命名法,如userName…

2.关键字

  • 关键字的概念一些具有特殊功能的标识符,这就是所谓的关键字。因为已经被python官方使用了,所以不允许开发者自己定义和关键字相同名字的标识符。
  • 关键字:
    在这里插入图片描述

五.运算符

Python提供了多种运算符,用于执行各种操作。下面是一些常见的Python运算符:

1.算术运算符:

  • 加减乘除 + - * \
  • 取模(取余数): %
  • 幂运算: **
  • 取整除: //

2.比较运算符:

  • 等于: == ;不等于: !=
  • 大于: > ;小于: <
  • 大于等于: >=
  • 小于等于: <=

3.逻辑运算符:

  • 与: and
  • 或: or
  • 非: not

4.赋值运算符:

  • 简单赋值: =
  • 加法赋值: +=
  • 减法赋值: -=
  • 乘法赋值: *=
  • 除法赋值: /=
  • 取模赋值: %=
  • 幂赋值: **=
  • 取整除赋值: //=

5.成员运算符:

  • in: 如果在指定的序列中找到值,则返回True,否则返回False。
  • not in: 如果在指定的序列中没有找到值,则返回True,否则返回False。

注:这只是Python运算符的一小部分,还有其他一些运算符用于特定的操作。

六.流程控制语句

1.通用语句

  1. if,if-else是计算机通用的判断语句
  2. elif这个类似于java的Switch的选择语句。

2.range对象

  • range 可以生成数字供 for 循环遍历,它可以传递三个参数,分别表示 起始、结束和步长。
  • 如果只是单独的数字:range(5)表示 1到1,默认步长为1。
  • range(1,101):表示1-100的对象,不包括101。

3.for循环

  1. 在Python中 for循环可以遍历任何序列的项目,如一个列表或者一个字符串等。
  2. 格式:

for 临时变量 in 列表或者字符串等可迭代对象:
循环满足条件时执行的代码

  1. 示例代码:
# 打印字符串
for s in "hello":
print(s)

# 打印数字1-5
for i in range(5):
print(i)

# 输出1-100的数字和
total = 0
for num in range(1, 101):
    total += num
print(total)

七.列表

1.列表的创建

python中的列表类似于java中的数组,用[]表示,是可变有序集合
语法为:lst=[1,2,"san"] ,[]中的内容随便加。

# 创建列表:第一种方法——使用[]
lst = ['hello', 'world', 98]
# 第二种方法:使用内置函数list()
lst2 = list(['hello', 'world', 98])
  • 有序排列,索引从头0开始向后递增,尾部从-1开始向前递减。
  • index()获取内容对应索引下标。
ls = ['hello', 'world', 98]
print(ls[0], ls[-3])
print(ls.index('world'))

输出为:
hello hello
1

2.列表的增删改查

因为列表是有序的可变的集合,所以增删改查是常用的功能。

  1. 增加:
    append :在末尾添加元素
    insert :在指定位置插入元素
    extend :合并两个列表
my_list = [1, 2, 3]
my_list.append(4)
print(my_list)  # 输出: [1, 2, 3, 4]

my_list.insert(1, 5)
print(my_list)  # 输出: [1, 5, 2, 3, 4]

my_list1 = [1, 2, 3]
my_list2 = [4, 5, 6]
my_list1.extend(my_list2)
print(my_list1)  # 输出: [1, 2, 3, 4, 5, 6]
  1. 删除:
    del:根据下标进行删除
    pop:删除最后一个元素
    remove:根据元素的值进行删除
my_list1 = [1, 2, 3, 22, 31]
# 删除索引为1的元素
del my_list1[1]
print(my_list1) # [1, 3, 22, 31]

# 删除最后的元素
my_list1.pop()
print(my_list1) # [1, 3, 22]

# 移除指定元素2
my_list1.remove(3)
print(my_list1) # [1, 22]
  1. 修改:我们是通过指定下标来访问列表元素,因此修改元素的时候,为指定的列表下标赋值即可。
my_list = [1, 2, 3]
my_list[0]=22
print(my_list)  # 输出: [22, 3, 4]
  1. 查询:所谓的查找,就是看看指定的元素是否存在,in 和 not in
    in(存在),如果存在那么结果为true,否则为false
    not in(不存在),如果不存在那么结果为true,否则false
#待查找的列表
nameList = ['xiaoWang','xiaoZhang','xiaoHua']
#获取用户要查找的名字
findName = input('请输入要查找的姓名:')
#查找是否存在
if findName in nameList:
print('在列表中找到了相同的名字')
else:
print('没有找到')

3.列表的遍历和排序

my_list = [5, 2, 3, 1, 4]

# 使用sort()方法对列表进行排序
my_list.sort()
print(my_list)  # 输出: [1, 2, 3, 4, 5]

# 使用for循环遍历列表
for element in my_list:
    print(element)

八.元组

1.元组的定义

  • Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。
    语法:strt=(1,2,3,4)
  • 定义只有一个元素的元组,需要在唯一的元素后写一个逗号。
a = 11
print(a) 
print(type(a))

a = (11,)
print(a)
print(type(a))
  • 运行结果如下:
    11
    <class ‘int’>
    (11,)
    <class ‘tuple’>

2.字符串的使用

字符串的常见操作包括下面这些,太多太杂,用到时候会用就行。

  • 获取长度:len
  • 查找内容:find ,存在就返回初次出现时的索引值,如果不存在,则返回-1.
  • 判断:startswith,endswith 判断字符串是不是以谁谁谁开头/结尾
  • 计算出现次数:count
  • 替换内容:replace 替换字符串中指定的内容
  • 切割字符串:split 通过参数的内容切割字符串
  • 修改大小写:upper,lower
  • 空格处理:strip 去空格
  • 字符串拼接:join

3.切片

切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
切片的语法:[起始:结束:步长],也可以简化使用 [起始:结束]

注意:选取的区间从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身),步长表示选取间隔。

# 索引是通过下标取某一个元素
# 切片是通过下标去某一段元素
s = 'Hello World!'
print(s)
print(s[4]) # o 字符串里的第4个元素
print(s[3:7]) # lo W 包含下标 3,不含下标 7
print(s[1:]) # ello World! 从下标为1开始,取出 后面所有的元素(没有结束位)
print(s[:4]) # Hell 从起始位置开始,取到 下标为4的前一个元素(不包括结束位本身)
print(s[1:5:2]) # el 从下标为1开始,取到下标为5的前一个元素,步长为2(不包括结束位本身)

九.字典

类似于java中的键值对,映射表。

1.字典的定义

字典(dectory)的创建:{'key':value}

# 第一种:使用{}
score = {'张三': 100, '王思': 98, '老六': 45}
print(score)
print(type(score))

# 第二种: 使用dict()
student = dict(name='jack', age=20)
print(student)
print(type(student))

2.基本操作

  • keys:获取所有key值的集合
  • values:获取所有value值的集合
  • items:获取所有键值对,每一个键值对以元组形式展现
  • get():获取指定key值对应value值
  • 增加和修改
score = {'张三': 100, '王思': 98, '老六': 45}
print(score)
# 获取所有的key值
keys = score.keys()
print(keys, type(keys))
print(list(keys))  # 将keys组成转化为列表

# 获取所有的value值
values = score.values()
print(values)
print(list(values))  # 将keys组成转化为列表

# 获取键值对
item = score.items()
print(item)
print(list(item))  # 转化后将每个键值对以元组形式表示,整体是列表

print()
# 字典元素的获取
print(score['张三'])         # 不存在时会报错
print(score.get('老六'))
print(score.get('211'))
print(score.get('w1', 99))  # 在查找时不存在时所默认的value值

print('张三' in score)

del score['张三']  # 删除指定的key-value对
print(score)
score.clear()
print(score)

score['ss'] = 98  # 新增元素
print(score)

score['ss'] = 250  # 修改元素
print(score)

十.函数

1.函数的定义

格式为:def 函数名():代码
示例代码:

# 定义一个函数,能够完成打印信息的功能
def f1():
  print('欢迎马大哥光临红浪漫')
  print('男宾2位')

调用函数:f1()就可以打印了,函数名调用。

2.参数函数

  1. 如果想实现根据输入值不同得到不同结果,那么就需要参数函数了。
  2. 示例:完成加法运算的函数
def add2num(a, b):
  c = a+b
  print c
# 调用带有参数的函数时,需要在小括号中,传递数据  
add2num(11, 22) 
  • 定义时小括号中的参数,用来接收参数用的,称为 “形参”
  • 调用时小括号中的参数,用来传递给函数用的,称为 “实参”

3.函数返回值

  1. 这个函数干完了一件事,最后给你的结果反馈,格式为:return 结果
  2. 最简单的就是上面的加法函数:返回的c是一个数值
def add2num(a, b):
  c = a+b
  return c

3.将递归思想带入,函数可以有很多可操作性。

# 递归函数实现斐波那契数列
def fun1(n):
    if n == 1:
        return 1
    elif n == 2:
        return 1
    else:
        result = fun1(n - 1) + fun1(n - 2)  # 从第三项开始,任意两项等于前两项之和
        return result  # 返回第n项斐波那契数

print(fun1(8))

十一.文件

1.文件的打开和关闭

打开文件/创建文件,在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件。
格式为:open(文件路径,访问模式)
示例:

# 新建一个文件,文件名为:test.txt
f = open('test.txt', 'w')
# 关闭这个文件
f.close()

其中访问模式记得这几种基本的就行了。
在这里插入图片描述
其中后面有+号,一般都用作读写。

2.文件的写数据

  • 写数据,使用write()可以完成向文件写入数据。
    新建一个文件 file_write_test.py ,向其中写入如下代码:
f = open('test.txt', 'w')
f.write('hello world, i am here!\n' * 5)
f.close()
  • 还有一种方法:使用file=文件变量名
# 其中a+是用读取方式写入,并且逐次追加,每打开一次追加一次
fp = open('D:/text.txt', 'a+')  
print('helloworld', file=fp)
fp.close()

3.文件的读数据

  • 使用read(num)可以从文件中读取数据,num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据。
  • 示例代码:
f = open('test.txt', 'r')
content = f.read(5) # 最多读取5个数据
print(content)
print("‐"*30) # 分割线,用来测试
content = f.read() # 从上次读取的位置继续读取剩下的所有的数据
print(content)
f.close() 

其中还有:
readline只用来读取一行数据。
readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行为列表的一个元素。

4.序列化和反序列化

  1. 使用JOSN库,将对象,列表转换为字符串再写入文件,直接写入不可以。
    转换为字符串写入文件-----序列化。
    字符串转换为对象,列表------反序列化。
  2. 序列化示例:dump函数
import json
file = open('names.txt', 'w')
names = ['zhangsan', 'lisi', 'wangwu', 'jerry', 'henry', 'merry', 'chris']
# dump方法可以接收一个文件参数,在将对象转换成为字符串的同时写入到文件里
json.dump(names, file)
file.close()
  1. 反序列化示例:load函数
import json
# 以可读方式打开一个文件
file = open('names.txt', 'r')
# 调用load方法,将文件里的内容加载成为一个Python对象
result = json.load(file)
print(result)

十二.异常

1.异常的概念

异常是在程序执行期间发生的错误或异常情况。在 Python 中,异常是通过引发(raise)异常对象来表示的。当异常发生时,程序的正常执行流程被打断,转而执行异常处理逻辑

try——except捕捉异常:捕捉顺序先子类后父类,从小到大

  • 父类——BaseException(一般只记个父类就行了,下面仅做了解)
  • ZeroDivisionError:除数为0
  • IndexError:序列中没有该该索引
  • KeyError:映射表中没有该关键字
  • NameError:未声明/初始化对象(没有属性)
  • SyntaxError:Python语法错误
  • ValueError;传入无效参数

2.异常捕捉

  • try…except语句可以对代码运行过程中可能出现的异常进行处理。
  • 语法结构:

try:
可能会出现异常的代码块
except 异常的类型:
出现异常以后的处理语句

  • try——可能出现异常的语句
    except捕捉异常
    else没有异常则执行
    finally无论是否异常都会执行

  • 具体示例:

try:
    a = int(input("输入第一个整数:"))
    b = int(input("输入第二个整数:"))
    c = a / b
except BaseException as e:
    print('出错了', e)
else:
    print("结果为:", c)
finally:
    print('无论怎么样,我都会执行')

备注:其中文件读取和后后面的爬虫技术会经常用到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱笑的蓝孩子~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值