Python学习笔记(一) Python基础

本文是Python初学者的学习笔记,涵盖了Python安装、PyCharm配置、基础语法(包括注释、字面量、变量、标识符、运算符、数据输入输出、数据类型等)、循环语句(while和for循环)、判断语句、函数、数据容器(列表、元组、字符串、集合、字典)以及文件操作等核心内容。详细解析了每个知识点,适合入门学习。
摘要由CSDN通过智能技术生成

文章目录

1. 初始Python

1.1 Python安装

官网下载:https://www.python.org/downloads

在这里插入图片描述
注意:这里是在windown操作系统下载python,请根据自己设备平台自行选择

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
检查是否安装成功:在终端输入 pythonpython -V查看版本

在这里插入图片描述

1.2 Python解释器

  • 安装Python环境,本质上,就是在电脑中,安装:Python解释器程序
  • Python解释器,是一个计算机程序,用来将Python代码翻译为计算机认识的01机器码,并提交给计算机执行。

在这里插入图片描述
可以将Python代码,写入一个以 .py 结尾的文件中,使用python命令去运行它;注意:运行py文件,不要在python命令行中执行(也就是不要出现>>>),否则报错

在这里插入图片描述

1.3 安装和配置PyCharm工具

安装步骤比较简单,选完安装路径,再点如下配置,即可。

在这里插入图片描述


接下来创建一个工程

在这里插入图片描述

2. 基础语法

2.1 注释

  • 注释:在程序代码中对程序代码进行解释说明的文字。
  • 作用:注释不是程序,不能被执行,只是对程序代码进行解释说明,能够大大增强程序的可读性。

单行注释:以 # 开头,# 右边 的所有文字当作说明
注意:# 号和注释内容一般建议以一个空格隔开

# 这是单行注释
print("hello")

多行注释: 以 一对三个 双引号 引起来 """注释内容""" 来解释说明一段代码的作用使用方法

"""
这是
多行
注释
"""
print("hello")

2.2 字面量

  • 字面量:在代码中,被写下来的的固定的值,称之为字面量
  • 常见的字面量类型:整数、浮点数、字符串等等
10 
10.3
"凉宫"

2.3 变量

变量:在程序运行时,能储存计算结果或能表示值的抽象概念。变量存储的数据,是可以发生改变的。

格式:变量名称 = 变量的值

在这里插入图片描述

money = 50
money = money - 10
print("钱包还有", money)
  • 存储变量的目的是为了:重复使用
  • 变量没有类型:变量引用数据才有类型
  • 变量必须先赋值再使用,否则报错

2.4 标识符

标识符:是用户在编程的时候所使用的一系列名字,用于给变量、类、方法等命名

Python中,标识符命名的规则主要有3类:

  • 内容限定

    • 标识符命名中,只允许出现:
    • 英文
    • 中文(不推荐)
    • 数字(但不可以开头)
    • 下划线(_)
  • 区分大小写

  • 不可使用关键字:Python中有一系列单词都有特定用途,称之为关键字

False True None and as assert
break class continue def del elif
else except finally for from global
if import in is lambda nonlocal
not or pass raise return try
while with yield

标识符规范:

  • 见名知意
  • 多个单词组合变量名,要使用下划线做分隔
  • 命名变量中的英文字母,应全部小写

2.5 运算符

1、算术(数学)运算符

运算符 描述
+
-
*
/
// 取整除,向下取整 -10 // 4 为 -3
% 取余
** 指数

2、赋值运算符

运算符 描述 示例
= 赋值运算符 把 = 号右边的结果 赋给 左边的变量

3、复合赋值运算符

运算符 描述 示例
+= 加法赋值运算符 c += a 等效于 c = c + a
-= 减法赋值运算符 c -= a 等效于 c = c - a
*= 乘法赋值运算符 c *= a 等效于 c = c * a
/= 除法赋值运算符 c /= a 等效于 c = c / a
%= 取模赋值运算符 c %= a 等效于 c = c % a
**= 幂赋值运算符 c **= a 等效于 c = c ** a
//= 取整除赋值运算符 c //= a 等效于 c = c // a

4、关系运算符

运算符 描述 示例
== 判断内容是否相等;满足为True,不满足为False 如a=3,b=3,则(a == b) 为 True
!= 判断内容是否不相等;满足为True,不满足为False 如a=1,b=3,则(a != b) 为 True
> 判断运算符左侧内容是否大于右侧;满足为True,不满足为False 如a=7,b=3,则(a > b) 为 True
< 判断运算符左侧内容是否小于右侧;满足为True,不满足为False 如a=3,b=7,则(a < b) 为 True
>= 判断运算符左侧内容是否大于等于右侧满足为True,不满足为False 如a=3,b=3,则(a >= b) 为 True
<= 判断运算符左侧内容是否小于等于右侧满足为True,不满足为False 如a=3,b=3,则(a <= b) 为 True

比较运算符返回的是布尔值


5、成员运算符

运算符 描述 示例
in 判断 in 右侧的内容是否包含了左侧的内容,包含返回True,不包含返回False 'a' in 'abc' ; 为True
not in 判断 not in 右侧的内容是否不包含左侧内容,不包含返回True,包含返回False 'a' not in ['a','b','c'] ; 为False

2.6 数据输入输出

  • 数据输出:使用 input() 可以从键盘获取输入
  • 数据输入:使用 print() 可以完成将内容(字面量、变量等)输出到屏幕上
print('请输入名字')
name = input()
print(name)
name2 = input('请再次输入名字:')
print(name2)
  • 可以使用一个变量接收(存储)input语句获取的键盘输入数据
  • input() 函数可以在要求使用者输入内容前,输出提示内容的
  • input() 函数的返回值永远是字符串类型
  • print函数调用,在第二个参数传入 end ='' 可不换行打印如: print('凉宫', end='')

2.7 数据类型

Python中常用的有6种值(数据)类型

类型 描述 说明
数字(Number) 整数(int) 如:10、-10
浮点数(float) 如:13.14、-13.14
复数(complex) 如:4+3j,以j结尾表示复数
布尔(bool) 即真和假,True表示真,False表示假。True本质上是一个数字记作1,False记作0
字符串(String) 描述文本的一种数据类型 字符串(string)由任意数量的字符组成
列表(List) 有序的可变序列 Python中使用最频繁的数据类型,可有序记录一堆数据
元组(Tuple) 有序的不可变序列 可有序记录一堆不可变的Python数据集合
集合(Set) 无序不重复集合 可无序记录一堆不重复的Python数据集合
字典(Dictionary) 无序Key-Value集合 可无序记录一堆Key-Value型的Python数据集合

2.7.1 type()函数

可以通过type()语句来得到数据的类型

语法:type(被查看类型的数据)

print(type(10))
print(type(-10.2)) # 既可以查看的都是<字面量>的类型
s1 = "凉宫" # 也可查看变量中存储的数据类型
print(s1)
"""
输出结果如下:
<class 'int'>
<class 'float'>
<class 'str'>
"""

type()查看的是变量存储的数据的类型。变量无类型,但是它存储的数据有类型

2.7.2 字符串

  • 字符串(string),又称文本,是由任意数量的字符如中文、英文、各类符号、数字等组成。所以叫做字符的串
  • Python中,字符串需要用双引号""包围起来

字符串类型的不同定义方式

# 双引号定义
text1 = "凉宫"
# 单引号定义
text2 = '凉宫'
# 三引号定义
text3 = """在三个引号
包围圈中都算是字符串
"""

2.7.3 数据类型转化

函数 说明
int(x) 将x转换为一个整数
float(x) 将x转换为一个浮点数
str(x) 将对象 x 转换为字符串

注意:

  1. 任何类型,都可以通过str(),转换成字符串
  2. 字符串内必须真的是数字,才可以将字符串转换为数字
  3. 整数可转浮点数,浮点数也可以转整数,但会丢失精度

2.8 字符串扩展

2.8.1 字符串的三种定义方式

name = '凉宫'
name = "凉宫"
name = """凉宫"""

三引号定义法,和多行注释的写法一样,同样支持换行操作。两者区别:

  • 使用变量接收它,它就是字符串
  • 不使用变量接收它,就可以作为多行注释使用。

需求:想要定义的字符串本身是包含:单引号、双引号自身

  • 单引号定义法,可以内含双引号
  • 双引号定义法,可以内含单引号
  • 可以使用转移字符 \ 来将引号解除效用,变成普通字符串

2.8.2 字符串拼接

两个字符串通过 + 号,可以将其拼接成一个新的字符串

# 字面量之间的拼接
name = '凉' + '宫'
# 变量与字面量
greet = 'hi, i am ' + name
# 变量与变量
c = name + greet

注意:字符串不可以通过 + 号与其它变量类型如数字类型进行拼接,否则报错

补充知识:
在字符串中,特殊符号:\t,效果等同于在键盘上按下:tab键。可以让多行字符串进行对齐

2.8.3 字符串格式化

如下 %s 是个占位符:其中 % 表示:这里要占位,s 表示:将变量变成字符串放入占位的地方

name = '凉宫'
hobby = '听音乐'
msg = '我是%s' % name
greet = 'hello, %s, 爱好是%s' % (msg, hobby)

注意:若有多个变量占位,变量要用括号括起来,并按照占位的顺序填入

Python中,支持非常多的数据类型占位,常用的如下

格式符号 说明
%s 将内容转换成字符串,放入占位位置
%d 将内容转换成整数,放入占位位置
%f 将内容转换成浮点型,放入占位位置

2.8.4 格式化的精度控制

可以使用辅助符号 m.n 来控制数据的宽度和精度

  • m,控制宽度,要求是数字(很少使用),设置的宽度小于数字自身,不生效
  • .n,控制小数点精度,要求是数字,会进行小数的四舍五入

三个示例:

  • %5d:表示将整数的宽度控制在 5 位,如数字 11,被设置为 5d,就会变成:[空格][空格][空格]11,用三个空格补足宽度。
  • %5.2f:表示将宽度控制为 5,将小数点精度设置为 2;小数点和小数部分也算入宽度计算。
    如,对11.345设置了%7.2f 后,结果是:[空格][空格]11.35。2个空格补足宽度,小数部分限制2位精度后,四舍五入为 .35
  • %.2f:表示不限制宽度,只设置小数点精度为 2,如 11.345 设置%.2f后,结果是 11.35
num1 = 11
num2 = 11.345
print('%5d' % num1)
print('%7.2f' % num2)
print('%.2f' % num2)

2.8.5 字符串格式化方式2

通过语法 f"内容{变量}" 的格式来快速格式化

name = '凉宫'
hobby = '听音乐'
print(f"我是{
     name},我喜欢{
     bobby}")

注意:这种写法不做精度控制也不理会类型,适用于快速格式化字符串

2.8.6 对表达式进行格式化

  • 表达式:一条具有明确执行结果的代码语句(能放在 赋值=号 右边的)
  • 表达式格式化:在无需使用变量进行数据存储的时候,可以直接格式化表达式,简化代码
print('1 * 2的结果为:%d' % (1 * 2))
print(f"1 * 3的结果为:{
     1 * 3}")

2.8.7 format格式转化

【示例】

'圆的面积为{0:.1f}平方米, 周长为{1:.1f}米'.format(22.33,16.75)
  • {} 中的 0,表示对应的参数序号
  • : 冒号是分隔符,冒号后面为输出格式
  • .1f 表示保留一位小数的浮点数
设置项(冒号后面的部分) 可选值
<宽度> 一个整数, 值格式化后整个字符串的字符个数
<填充字符> *=- 等,但只能是一个字符,默认为空格
<对齐方式> ^ (居中);<(左对齐);> (右对齐)
'{:-^10}'.format('hello') # --hello---
'{:*<10}'.format('hello') # hello*****
'{:=>10}'.format('hello') # =====hello

2.8.8 转义字符

字符 描述
\(在行尾时) 续行符
\\ 反斜杠符号
\' 单引号
\" 双引号
\n 换行
\t 横向制表符

2.9 布尔类型

布尔类型的字面量:

  • True 表示真(是、肯定)
  • False 表示假 (否、否定)

布尔类型不仅可以自行定义,也可以通过比较运算符进行比较运算得到

bool_1 = True
bool_2 = False
num1 = 10
num2 = 11
bool_3 = num1 <= num2

3. 判断语句

3.1 if语句的基本格式

if 要判断的条件
    条件成立时,要做的事情
# 例如
age = 20
if age >= 18:
    print("您已成年")
    print("时间过得真快")

注意点:

  • 判断语句的结果,必须是布尔类型True或False
  • True会执行if内的代码语句,False则不会执行
  • 归属于if判断的代码语句块,需在前方填充4个空格缩进
  • 重要:Python通过缩进判断代码块的归属关系。

3.2 if else 语句

if 条件:
    满足条件要做的事1
    ...省略
else:
    不满足条件时要做的事1
    ...省略
# 示例
age = 20
if age >= 18:
    print("您已成年,购票无优惠")
else:
    print("您未成年,购票打半折。")

注意点:

  • else后,不需要判断条件
  • if 的代码块一样,else的代码块同样需要4个空格作为缩进

3.3 if elif else语句

if 条件1:
    满足条件1要做的事
elif 条件2:
    满足条件2要做的事
    ...
elif 条件N:
    满足条件N要做的事
else:
    所有条件不满足时要做的事
# 示例
age = 20
if age < 12:
    print("购票免费")
elif age < 18:
    print("购票半折")
else:
    print("购票无优惠")

注意:

  • elif 语句可以写多个
  • 判断是互斥且有顺序的,上一个满足后面的就不会判断了。例如:满足条件1将不会处理条件2和3;满足条件2,将不会理会3;1、2、3均不满足,进入else
  • else 也可以省略不写,效果等同3个独立的 if 判断
  • 空格缩进不可省略

3.4 判断语句的嵌套

许多逻辑的判断,是嵌套的,多层次的。对于这种需求可以:自由组合 if elif else,完成特定需求的要求

age = 11
year = 1
level = 1
if age >= 18:
    print("你是成年人")
    if age < 30:
        print("你的年龄达标了")
        if year > 2:
            print("恭喜你,年龄和入职时间都达标,可以领取礼物")
        elif level > 3:
            print("恭喜你,年龄和级别达标,可以领取礼物")
        else:
            print("不好意思,尽管年龄达标,但是入职时间和级别都不达标。")
    else:
        print("不好意思,年龄太大了")
else:
    print("不好意思,小朋友不可以领取。")

嵌套的关键点,在于:空格缩进;通过空格缩进,来决定语句之间的:层次关系

4. 循环语句

4.1 while循环

4.1.1 基础语法

只要条件满足会无限循环执行

while 条件
    满足条件要做的事1
    满足条件要做的事2
    ...省略
# 示例
i = 0
while i < 100:
    print("凉宫,suki")
    i += 1

注意点:

  • while 的条件需得到布尔类型结果,True表示继续循环,False表示结束循环
  • 需要设置循环终止的条件,如 i += 1 配合 i < 100 ,就能确保100次后停止,否则将无限循环
  • 空格缩进和if判断一样,都需要设置

4.1.2 嵌套应用

嵌套应用:循环内套循环

while 条件1:
    满足条件1要做的事1
    满足条件1要做的事2
    while 条件2:
        满足条件2要做的事1
        满足条件2要做的事2
    满足条件1要做的事3
# 示例
i = 1
while i <= 20:
    print(f"今天是第{
     i}天,准备表白.....")
    # 内层循环的控制变量
    j = 1
    while j <= 5:
        print(f"送给凉宫第{
     j}只玫瑰花")
        j += 1
    print("凉宫,suki")
    i += 1
print(f"坚持到第{
     i - 1}天,表白成功")

注意点:

  • 多层循环语句的嵌套,基于空格缩进来决定层次关系
  • 注意条件的设置,避免出现无限循环(除非真的需要无限循环)

4.2 for循环

while 循环的循环条件是自定义的,自行控制循环条件
for 循环(也称遍历循环)是一种”轮询”机制,是对一批内容进行”逐个处理”

4.2.1 基础语法

解释:从待处理数据集中:逐个取出数据赋值给临时变量

for 临时变量 in 待处理数据集(可迭代对象):
    循环满足条件时执行的代码
# 示例
name = "凉宫haruhi"
for x in name:
    # 将name的内容,挨个取出赋予x临时变量
    # 就可以在循环体内对x进行处理
    print(x)
  • 同 while 循环不同,for 循环是无法定义循环条件的。只能从被处理的数据集中,依次取出内容进行处理。
  • 理论上讲,Python的 for 循环无法构建无限循环(被处理的数据集不可能无限大)
  • 待处理数据集,严格来说,称之为:可迭代类型
  • 可迭代类型指,其内容可以一个个依次取出的一种类型,包括字符串、列表、元组等
  • for 循环语句,本质上是遍历:可迭代对象。

4.2.2 嵌套应用

while 一样,for 循环也支持嵌套使用

for 临时变量 in 待处理数据集:
    循环满足条件时执行的代码
    for 临时变量 in 待处理数据集:
        循环满足条件时执行的代码
# 示例:for循环打印九九乘法表
for i in range(1, 10):
    # 通过内层循环控制每一行的数据
    for j in range(1, i + 1):
        # 在内层循环中输出每一行的内容
        print(f"{
     j} * {
     i} = {
     j * i}\t", end='')
    # 外层循环可以通过print输出一个回车符
    print()

for 循环和 while 循环可以相互嵌套使用

4.2.3 range语句

  • range(num):获取一个从0开始,到num结束的数字序列(不含num本身)
  • range(num1,num2):获得一个从num1开始,到num2结束的数字序列(不含num2本身)
  • range(num1, num2, step):获得一个从num1开始,到num2结束的数字序列(不含num2本身),数字之间的步长,以step为准(step默认为1)
range(5) # 取得的数据是:[0, 1, 2, 3, 4]
range(5, 10) # 取得的数据是:[5, 6, 7, 8, 9]
range(5, 10, 2) # 取得的数据是:[5, 7, 9]
for i in range(5): 
	print(i)

4.2.4 变量作用域

for 临时变量 in 待处理数据集:
    循环满足条件时执行的代码
for i in range(5): 
	print(i)
print(i) # 这里的i可以正常输出
  • 临时变量,在编程规范上,作用范围(作用域),只限定在for循环内部
  • 如果在for循环外部访问临时变量,实际上是可以访问到的,在编程规范上,是不允许、不建议这么做
  • 如果实在需要在循环外访问循环内的临时变量,可以在循环外预先定义

4.3 循环中断

循环中断用以对循环进行临时跳过直接结束

4.3.1 break

  • break 关键字用于直接结束所在循环
  • break 可以用于 for 循环和 while 循环,效果一致
  • break 关键字同样只可以控制它所在的循环永久中断,不会影响到外层的循环(若有)
# 只输出了 0 1 2
for i in range(5):
    if i == 3:
        break
    print(i)

4.3.2 continue

  • continue 关键字用于:中断本次循环,直接进入下一次循环
  • continue 可以用于 for 循环和 while 循环,其效果一致
  • continue 关键字只可以控制它所在的循环临时中断,不会影响到外层的循环(若有)
# 会跳过输出3
for i 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值