python入门学习笔记

python入门学习笔记目录


1.编程概论

1.1 注释

  • 注释是使用特殊的符号告诉编程语言忽略这行代码,简单来说注释是给人看的,让人能更容易读懂代码,而编程系统会自动忽略注释的内容。

单行注释 #

  • 单行注释可以使用 符号 # 创建注释
# 开始学习python啦,第一行代码是学会打印hello world,print('hello world!')
print('hello world!')

在这里插入图片描述
多行注释

  • 使用3对单引号或者3对双引号来创建多行注释
'''
今天是周二
开始学习python啦
坚持就是胜利
'''
# 或者
"""
这是多行注释
编程机器不会运行的模块
但是程序员可以通过这来了解我们为什么这样写代码
"""

1.2 打印与标记符

1.2.1 打印 print

  • 程序打印内容使用关键字 print ,它可以打印任何内容,记得要带上圆括号引号,英文状态
print('好好学习,天天向上')
print('good good study,day day up!')

在这里插入图片描述

  • 我们可以使用内置函数 help() 来查看 print 的用法与功能
  • 同样的,以后碰到不懂的函数都可以使用内置函数 help() 来查看相关用法与功能。
    在这里插入图片描述

1.2.2标记符

  • 标记符的第一个字符必须是字母表中的字母或者下划线_
  • 标记符的其他部分由字母数字和下划线组成
  • 标记符区分大小写

1.3 代码行

1.3.1 单行语句

  • 我们写程序的时候,都是由一行一行的代码组成的,代码的最左边一般都有行数以区别代码。
  • 单行语句也称简单语句:一般是由一行代码组成

1.3.2 多行语句

  • 有时候代码比较长,可能不止一行,这时候可以使用反斜杠、三引号、圆括号、方括号或者大括号扩
    展至新一行,实现多行语句
print('''This is a really really
really really long line of
 code.''')
  • 另外,还可以使用反斜杠 \ 对代码进行换行
print\
("""his is a really really
really really long line of
 code.""")

在这里插入图片描述

  • 这里主要体现了:反斜杠可以将(""“This is a really really really long line of code.”"")和 print 放在不同的行,实现多行语句
total = item_one + \
	item_two + \
	item_three
  • 另外圆括号()、方括号[]、大括号{}也可以实现多行语句,可自行了解

1.3.3 缩进

  • 缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。
  • 缩进表示代码块的开始和结束
for i in range(10):
    print('我要学习python')

在这里插入图片描述

if 1>2:
    print('true')
else:
    print('false')
  • 也许这里会更好理解,print(‘true’)与print(‘false’)这两行有相同的缩进,缩进了4个空格,代表的是同一个代码块。缩进的空格数可以变,但是同一个代码块缩进数应该一样,否则代码无法正常运行,会提示异常。

  • 缩进不一致时,执行后会出现错误:缩进错误
    在这里插入图片描述

1.3.4 复合语句

  • 复合语句由一个或多个从句(clause)组成。
  • 从句包括两行或多行代码
  • 代码头(header)及紧随其后的配套代码(suite)。代码头指的是从句中包含关键字的那行代码,之后是一个冒号和一行或多行带缩进的代码。缩进之后,是一个或多个配套代码。配套代码就是从句中一行普通的代码。代码头控制配套代码的执行。
  • 下面将介绍的条件语句就是复合语句组成的,现在我们先看一个简单的例子:打印10次 hello world !
for i in range(10):
    print('hello world!')

在这里插入图片描述

1.4 关键字

  • 关键字也称保留字,是编程语言中具有特殊意义的字,我们在编程命名的时候要避免以关键字来命名,不能把关键字用作任何标记符的名称。
  • 可以使用python标准库提供的 keyword 模块输出当前版本的所有关键字,以下所示。
import keyword
tmp = keyword.kwlist
print(tmp)

在这里插入图片描述

  • import keyword 只是导入这个模块,想要把关键字都显示出来,我们需要把关键字的列表赋给一个变量,再把变量打印出来。所以这里令 tmp = keyword.kwlist ,再 print(tmp)

1.5 基本对象数据类型

  • 在python中,万物皆对象,对象有类型。
  • 对象有3个属性的数据值:唯一标识(其在计算机中的内存地址,不变)、数据类型(对象所属的数据类别,决定了对象的属性,不变)、值(对象表示的数据)
  • 基本的数据类型有6种: Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Set(集合)、Dictionary(字典)
  • 数据类型为 NoneType 的对象,其值永远为 None,用来表示数据缺失。

其中

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

1.5.1type() 函数

  • python内置的 type() 函数可以用来查询变量所指的对象类型。
 type(2)
 type(2.1)
 type(None)
 type('hello world')

在这里插入图片描述

1.5.2 isinstance() 判断函数

  • isinstance 存在
  • isinstance(object, classinfo) ——object 是变量,classinfo 是类型
  • 若参数 object 是 classinfo 类的实例,或者 object 是 classinfo 类的子类的一个实例, 返回 True。
  • 若 object 不是一个给定类型的的对象, 则返回结果总是False。

在这里插入图片描述

1.5.3 type 与 isinstance

-共同点:两者都可以判断对象类型
-不同点:type()不会认为子类是一种父类类型,isinstance()会认为子类是一种父类类型。

1.6 常量与变量

  • 顾名思义,常量是不会变的值;而变量是会改变的值
  • 变量可以由一个或多个字符组成的名称构成,并可以使用赋值符 等号(=)赋予这个名称一个值

1.7 语法

  • 语法(syntax)指的是规范一门语言中句子结构,尤其是字词顺序的一整套规则及流程。
  • 在 Python 中,字符串永远被包括在引号内,这就是 Python 的一个语法示例。

1.7.1 错误与异常

  • Python 有两种错误:语法错误和异常。

  • 在编写 python 程序时如果不注意语法的正确使用,在程序运行时就会出现错误,这种错误属于语法错误。
    在这里插入图片描述

  • 如上,字符串的右侧少了个引号,程序便无法执行了,并给出相关的错误信息:语法错误。

  • 错误信息会告诉你错误位于哪个文件,出现在哪一行,以及属于什么类型。

  • 针对这种语法错误,我们可以找到出错的地方,相应地去修改,就可以正常运行了

  • 而 python 中不属于语法错误的错误,就是异常(exception)。

  • 出现异常时,Python 程序会说“Python(或程序)报了一个异常”

  • 比如不小心把0用作分母,就会出现“ZeroDivisionError”异常

  • 比如代码缩进不正确,程序会报“IdentationError”

在这里插入图片描述

1.8 python操作符

  • Python 有多个类型的操作符,下面先了解算术操作符、比较操作符、逻辑操作符

1.8.1 算术操作符

操作符 含义 示例 结果
** 指数运算 2**3 8
% 取模运算,即取余数 14%4 2
// 整除运算,即取整数 14//4 3
/ 除法运算,返回浮点数 13/8 1.625
* 乘法运算 8*2 16
- 减法运算 7-1 6
+ 加法运算 2+3 5

在这里插入图片描述

  • 操作数:操作符两侧的值
  • 表达式:两个操作数和一个操作符共同构成一个表达式
  • 程序运行时,Python 会对每个表达式求值,并返回一个值作为结果。
  • 运算顺序:括号(parentheses)、指数(exponents)、乘法(multiplication)、除法(division)、加法(addition)和减法(subtraction)

1.8.2 比较操作符

操作符 含义 示例 结果
> 大于 100>10 True
< 小于 100<10 False
>= 大于等于 2>=2 True
<= 小于等于 1<=4 True
== 等于 6==9 False
!= 不等于 3!=2 True

在这里插入图片描述

  • 这里可以区分一下 = 与 == ,= 在 python 中是用来给变量赋值的,而 == 是用来比较两边是否相等。

1.8.3 逻辑操作符

操作符 含义 示例 结果
and 与(都真才真) True and True True
or 或(一真则真) True or False True
not not True False
  • 关键字 and 可以连接两个表达式,如果二者求值均为 True,则返回 True。
  • 在一个语句中可以多次使用 and 关键字
  • 关键字 or 可连接两个或多个表达式,如果任意一个表达式的值为 True,即返回True
  • 在一个语句中可以多次使用 and 、or
  • 如果表达式原本的求值结果为 True,加上 not 之后结果会变为False
  • 所以,将关键字 not 放置在表达式的前面,将改变表达式的求值结果,逆转为原本结果的对立值。

在这里插入图片描述

  • 在 and、or、not 三种运算中,非运算 not 级别最高,and 次之,or 运算级别最低
  • not(a and b) 等价于 not a or not b;
  • not(a or b) 等价于 not a and not b;
  • not(not a) 等价于 a;

1.8.4 赋值操作符

操作符 说明 示例 结果
= 简单的赋值操作符 a=3 把3赋值给a
+= 加法赋值操作符 a+=3 把a+3的值赋给a,即a=a+3
-= 减法赋值操作符 a-=1 把a-1的值赋给a,即 a=a-1
*= 乘法赋值操作符 a*=2 把a2的值赋给a,即 a=a2
/= 除法赋值操作符 a/=2 把a/2的值赋给a,即a=a/2
%= 取模赋值操作符 a%=2 把a%2的值赋给a,即 a=a%2
//= 取商赋值操作符 a//2 把a//2的值赋给a,即 a=a//2
**= 幂赋值操作符 a**=2 把a**2的值赋给a,即 a=a%2
:= 海象运算符 可在表达式内部为变量赋值。`

在这里插入图片描述

1.9 条件语句

  • 条件语句是一种控制结构:通过分析变量的值从而做出相应的决定的代码块
  • 条件语句的关键字:if、elif、else

1.9.1 if 条件语句

  • 如果满足条件就这样
if bool(conj):
    do something
  • 以上伪代码(伪代码是用于解释说明示例代码的标记方法)中 bool(conj) 是一个判断条件,结果是 True 或者 False ,如果是 True ,就会执行 do something 这条语句,否则不返回任何值。
    在这里插入图片描述

  • 值得注意的是,if 语句之后的冒号 :必须要有,执行语句(do something 那行)前面需要缩进4个空格,一个Tab键,很多编译器会自动缩进,没有的话需要自己特别注意,否则会提示缩进错误

  • python中必须通过缩进的方法来表示语句块的开始和结束
    在这里插入图片描述

1.9.2 if…else 语句

  • 如果满足条件就这样,否则就那样
if 1>2 :
    print('True')
else:
    print('False')

在这里插入图片描述

  • 注意冒号的使用,其实这里有两个判断语句 if 判断语句:如果条件是真的;else 判断语句:如果条件是假的
  • 可以理解为有判断就有冒号
  • print(‘True’) 和 print(‘False’) 都是需要执行的语块,所以需要缩进

1.9.3 if…elif…else 语句

  • if…elif…else 基本样式结构如下
if 条件1:
    语块1
elif 条件2:
    语块2
elif 条件3:
    语块3
...
else:
    语块4
  • if…elif…else 中间可跟多个elif
  • 如果一个 if-else 语句中包含有 elif 语句,则首先判断 if 语句。如果该语句中的表达式为 True,则只执行其中的代码。但是,如果其值为 False,每个之后的 elif 语句都将进行求值。只要有一个 elif 语句中的表达式结果为 True,则执行其中的代码并退出。如果没有任何一个 elif 语句的结果为 True,则执行 else 语句中的代码。
  • 要记得每个条件语句都需要冒号 :即,if、else、elif 后都需要冒号 :(英文冒号)
number=input('please enter a number:')
# input函数用于用户输入内容
number=int(number)
# input返回的结果都是字符串,需要用int函数把用户输入的内容转为数字类型
if number == 10 :
 print('this number is {}'.format(number))
elif number > 50 :
 print('this number is {}'.format(number))
 print('this number is more than 50')
elif number > 10 :
 print('this number is {}'.format(number))
 print('this number is more than 10')
else:
 print('this number is {}'.format(number))
 print('this number is less than 50')

在这里插入图片描述

1.9.4 三元操作符

  • 三元操作是条件语句中比较简单的一种赋值方式,什么情况下变量等于这个值,否则变量就等于那个值。
A=Y if X else Z
  • 如果 X是真的,执行 A=Y
  • 如果 X是假的,执行 A=Z
x=2
y=4
a='python' if x>y else 'hello'
print(a)
b='python' if x<y else 'hello'
print(b)

在这里插入图片描述

1.10 挑战练习

  • 请打印 3 个不同的字符串。
  • 编写程序:如果变量的值小于 10,打印一条消息;如果大于或等于 10,则打印不同的消息。
  • 编写程序:如果变量的值小于或等于 10,打印一条消息;如果大于 10 且小于或等于 25,则打印一条不同的消息;如果大于 25,则打印另一条不同的消息。
  • 编写一个将两个变量相除,并打印余数的程序。
  • 编写一个将两个变量相除,并打印商的程序。
  • 编写程序:为变量 age 赋予一个整数值,根据不同的数值打印不同的字符串说明。
# 第一题
print('hello world')
print('good good study')
print('day day up')
# 第二题
num_1=int(input('please enter a number'))

if num_1 < 10 :
    print('您输入的数字是{},小于10'.format(num_1))
else:
    print('您输入的数字是{},大于等于10'.format(num_1))
# 第三题
num_1=int(input('please enter a number'))

if num_1 <= 10 :
 print('您输入的数字是{},小于等于10'.format(num_1))
elif num_1 <=25 :
 print('您输入的数字是{},小于等于25'.format(num_1))
else:
 print('您输入的数字是{},大于25'.format(num_1))

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

# 第四题,第五题
num_1=20
num_2=7
num_3=num_1%num_2
print(num_3)
num_4=num_1//num_2
print(num_4)

在这里插入图片描述

age=int(input("请输入你的年龄:"))

if age<=0:
 print("请输入正确的年龄:")
elif age<=18:
 print("你的年龄是{},未成年".format(age))
elif age<=40:
 print("你的年龄是{},还年轻,继续拼搏".format(age))
elif age<=60:
 print("你的年龄是{},注意养生了吗".format(age))
else:
 print("你的年龄是{},祝您身体健康哦".format(age))

在这里插入图片描述

2. 基本对象类型

  • 第1章中讲到,基本的数据类型有6种: Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Set(集合)、Dictionary(字典),现在将详细对其进行讲解。

2.1 数字类型

  • Python 数字数据类型用于存储数值。
  • python的数字类型有四种:整数(int)、浮点数(float)、布尔型(bool)和复数(complex)。
  • **注意:**在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。到 Python3 中,把 True 和 False 定义成关键字了,但它们的值还是 1 和 0,它们可以和数字相加。
  • 通过变量赋值可直接创建数字类型
num_1=2
num_1=2.1

整型(Int)

  • 通常被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型。
    浮点型(float)
  • 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)
    复数( (complex))
  • 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

2.1.1 数字类型转换

  • int(x) 将x转换为一个整数。
  • float(x) 将x转换到一个浮点数。
  • complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。
  • complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。
a=input('请输入一个数字:')
a=int(a)
b=float(a)

在这里插入图片描述

2.1.2 数字类型可以进行运算

  • 其中,第1章中讲到的算法操作符,赋值操作符都可用在数字的运算上,这里就不重复了。

2.1.3 数字函数

函数 返回值
abs(x) 返回数字的绝对值,如abs(-10) 返回 10
ceil(x) 返回数字的上入整数,如math.ceil(4.1) 返回 5
floor(x) 返回数字的下舍整数,如math.floor(4.9)返回 4
exp(x) 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
fabs(x) 返回数字的绝对值,如math.fabs(-10) 返回10.0
log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x) 返回以10为基数的x的对数,如math.log10(100)返回 2.0
max(x1, x2,…) 返回给定参数的最大值,参数可以为序列。
min(x1, x2,…) 返回给定参数的最小值,参数可以为序列。
pow(x, y) x**y 运算后的值。
round(x [,n]) 返回浮点数 x 的四舍五入值,如给出 n 值,则代表舍入到小数
sqrt(x) 返回数字x的平方根。

2.1.4 随机数函数

  • 随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。
函数 说明
choice(seq) 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。
randrange ([start,] stop [,step]) 从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1
random() 随机生成下一个实数,它在[0,1)范围内。
seed([x]) 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。
shuffle(lst) 将序列的所有元素随机排序
uniform(x, y) 随机生成下一个实数,它在[x,y]范围内。

2.1.5 三角函数

函数 说明
acos(x) 返回x的反余弦弧度值。
asin(x) 返回x的反正弦弧度值。
atan(x) 返回x的反正切弧度值。
atan2(y, x) 返回给定的 X 及 Y 坐标值的反正切值。
cos(x) 返回x的弧度的余弦值。
hypot(x, y) 返回欧几里德范数 sqrt(xx + yy)。
sin(x) 返回的x弧度的正弦值。
tan(x) 返回x弧度的正切值。
degrees(x) 将弧度转换为角度,如degrees(math.pi/2) , 返回90.0
radians(x) 将角度转换为弧度

2.1.6 数字常量

常量 说明
pi 数学常量 pi(圆周率,一般以π来表示)
e 数学常量 e,e即自然常数(自然常数)。

2.1.7 math

  • 以上的某些函数介绍(如:math.ceil(4.1))使用了math
  • math 是python的一个模块,模块相关内容后面章节会详细讲解,现在只是简单了解一下math模块
  • math 模块可以直接使用,但需要用关键字 import 来将 math 引入当前环境。
# 以求圆周率为例子
import math
math.pi

在这里插入图片描述

  • 如果你想继续深入了解这个库还有哪些函数功能,可以使用内置函数 dir() 来查看
dir(math)

在这里插入图片描述

  • 如果你想知道某个功能怎么用,可以使用内置函数 help()
  • 使用help函数查询库的功能,不能直接把功能的名字放进括号里,还需把库的名字带上,比如 math.exp
help(math.exp)

在这里插入图片描述

2.2 字符串(str)

  • 字符串是由0个或多个字符组成的有限的串行
  • 字符串是 Python 中最常用的数据类型。我们可以使用引号( ’ 或 " )来创建字符串。
  • 一个中文、一个英文、一个空格都属于字符串里的一个字符
  • 可以使用 len() 函数来测量字符串的长度(字符的个数)
  • 使用内置函数 type() 查看对象类型
string_1='I love python'
string_2="我爱学习"
len(string_1)
len(string_2)
type(string_1)

在这里插入图片描述

  • 字符串是不可变的,我们无法修改字符串中的字符,如果想要修改,只能创建一个新的字符串。

2.2.1 转义符 \

  • 现在我想打印一句话:what’s your name?,你会怎么去执行呢?
  • 是如下吗?这么简单,肯定有坑吧,先运行看看!
print('what's your name?')

在这里插入图片描述

  • 果然呀!出现了语法错误,SyntaxError: invalid syntax

  • 编写这段程序时,我们涉及三个单引号(一对半),python解析器是看不懂的,它会以为前面两个单引号才是一对,而后面单个单引号则会让python解析器的迷惑,因为语法上是不能出现单个引号的,于是python解析器报了个语法错误。

  • 那么我们应该怎么解决这个问题呢?方法有二

方法一:双引号包裹单引号

print("what's your name?")

在这里插入图片描述

  • 这样就能让python解析器好好地理解啦,先识别一对双引号,再把双引号的内容打印出来,对python解析器来说双引号里面的一切都是字符串
  • 同样的,单引号里面也可以包裹双引号。

在这里插入图片描述
方法二:使用转义符

  • 哈哈,终于讲到转义符了
  • 所谓转义符,顾名思义,就是让某个具有特别意义的符号不再表示某个含义。
  • python中,使用符号反斜杠 \ 作为转义符(其实很多语言都使用这个符号作为转义符,学习MySQL的时候也碰到了)
print("what\'s your name?")

在这里插入图片描述

以下介绍比较常用的转义类型

转义字符 说明
\(在行尾时) 续行符
\\ 转义反斜杠符号
\’ 转义单引号
\" 转义双引号
\a 响铃,执行后电脑会有提示音
\b 退格(Backspace)
\000
\n 换行
\v 纵向制表符
\t 横向制表符
\r 回车,将 \r 后面的内容移到字符串开头,并逐一替换开头部分的字符,直至将 \r 后面的内容完全替换完成。
\f 换页
\oyy 八进制数,y 代表 0~7 的字符,例如:\012 代表换行。
\xyy 十六进制数,以 \x 开头,y 代表的字符,例如:\x0a 代表换行
\other 其它的字符以普通格式输出

例子

# 续行,第1章所提到的实现多行语句
print("line1 \
line2 \
line3")
line1 line2 line3
# 反斜杠
 print("\\")
 # 单引号
 print('\'')
 # 双引号
 print("\"")
 # 铃声,执行后电脑有响声。
 print("\a")
 # 退格
 print("Hello \b World!")
 #结果:Hello World!
 # 空,输出结果什么也没有
 print("\000")
 # 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值