一、什么是Python
1.1 Python的诞生
1989年,为了打发圣诞节假期,Gudio van Rossum吉多· 范罗苏姆(龟叔)决心开发一个新的解释程序(Python雏形)
1991年,第一个Python解释器诞生
Python这个名字,来自龟叔所挚爱的电视剧Monty Python’s Flying Circus
** 1.2 为什么学习Python**
> 简单易学、全球第一、优雅、应用场景丰富(就业方向多)
** 1.3Python的应用场景**
** 1.4 Python环境及软件的安装**
请移步其他博客,此篇博客主要讲述Python语法 软件的安装会在后一段时间再发表新博客
二、Python的基础语法
2.1字面量
2.1.1 什么是字面量
在代码中,被写下来的固定的值(数据),叫做字面量
"abcd"
1
3.6
2.1.2 字面量类型
同时也是值(数据)类型
2.1.3 什么是字符串
注:先简单提出概念,方便写简易的代码,后续字符串有详解
字符串(string),又称文本,是由任意数量的字符如中文、英文、各类符号、数字等组成。所以叫做字符的串
如:
"abcde"
"世界真美好"
"123456大揭秘"
都是字符串
“abcde”
“世界真美好”
“123456大揭秘”
都是字符串
Python中,字符串需要用双引号(“字符串内容”)包围起来
被引号包围起来的,都是字符串
注:实际使用字符串时,无论是单引号,双引号,还是三引号都可以
即:字符串有三种不同的定义方式
三引号定义法,表示在一堆三个双引号的范围内,均是字符串(可以换行),如下:
2.2 基础Python语句 体验Python特点
2.2.1 print
print 相当于C语言中的 printf ,用法些许类似
如:
print("abc")
print(123)
print("9277万物可爱")
运行结果:
abc
123
9277万物可爱
需要注意的是,单独输出常数和变量时,不需要使用引号
2.2.2 Python 语句格式与C的区别
首先,python语句不需要以分号结尾,而是以每一行作为区分,有点像每一行末尾处都加了分号(当然,实际不是,也不相同)
代码缩进:在C中,代码的缩进只影响代码的可读性和美观,不影响实际使用
而在python中,代码缩进控制着不同函数相互间的嵌套和归属
Python 通过缩进判断代码块的归属关系。
而在python中,代码缩进控制着不同函数相互间的嵌套和归属
Python通过缩进判断代码块的归属关系。
大括号格式:Kernighan和Ritchie格式 (Kb&R格式)
当大括号内需要有多行语句,左侧的大括号与语句同行,不再另一分行
当大括号内需要有多行语句,左侧的大括号与语句同行,不再另一分行
stu_score_dict = {
#回车符对字典间的元素无影响
"王力鸿": {
"语文": 77,
"数学": 66,
"英语": 33
}, "周杰轮": {
"语文": 88,
"数学": 86,
"英语": 55
}, "林俊节": {
"语文": 99,
"数学": 96,
"英语": 66
}
}
print(f"学生的考试信息是:{stu_score_dict}")
由上图可以看出左侧大括号并未独自占一行
注:Python语句和C语句之间还有很多区别,后续会逐步发掘
2.3 注释
注释:在程序代码中对程序代码进行解释说明的文字。
作用:注释不是程序,不能被执行,只是对程序代码进行解释说明,让别人可以看懂程序代码的作用,能够大大增强程序的可读性。
作用:注释不是程序,不能被执行,只是对程序代码进行解释说明,让别人可以看懂程序代码的作用,能够大大增强程序的可读性。
** 2.3.1 单行注释**
单行注释:通过 # 号定义,在#号右侧的所有内容均作为注释
以 #开头,#右边 的所有文字当作说明,而不是真正要执行的程序,起辅助说明作用
注:#号和注释内容一般建议以一个空格隔开
单行注释一般用于对一行或一小部分代码进行解释
2.3.2 多行注释
以 一对三个双引号 引起来 “”“注释内容”“” 来解释说明一段代码的作用使用方法
> 注:多行注释可以换行
多行注释一般对:Python文件、类或方法进行解释
2.3.3 关于注释的面试题
1. 单行注释中能否使用多行注释?
可以,但实际使用时敲下回车键会跳转下一行并自动蹦出# 实际没有三引号的太多关系
2. 多行注释中能否使用单行注释?
可以,但无论使用还是不使用,结果都完全一致
3. 多行注释中能否使用多行注释?
不可以,三引号之间会就近匹配
**2.4 变量 **
2.4.1 什么是变量
变量:在程序运行时,能储存计算结果或能表示值的抽象概念。
简单的说,变量就是在程序运行时,记录数据用的
2.4.2 变量的定义格式
如:
a = 10
待处理位置
print语句如何输出多份内容?
print(内容1, 内容2, …, 内容N)
和那个加号的区别
2.5 数据类型(初识)
2.5.1 入门款三种输入类型
目前在入门阶段,我们主要接触如下三类数据类型:
string、int、float这三个英文单词,就是类型的标准名称。
2.5.2 type() 语句
当某个数据编写的令人迷惑时,问题来了,如何验证数据的类型呢?
我们可以通过type()语句来得到数据的类型:
语法:
type(被查看类型的数据)
语法:
type(被查看类型的数据)
使用方式:
1. 在print语句中,直接输出类型信息:
print(type("云边有个小卖部"))
print(type(123))
print(type(11.345))
运行结果:
2. 用变量存储type()的结果(返回值):
type_1 = type("云边有个小卖部")
type_2 = type(123)
type_3 = type(11.345)
print(type_1)
print(type_2)
print(type_3)
运行结果:
** 2.5.3 变量有类型么**
答:变量无类型
我们通过type(变量)可以输出类型,这是查看变量的类型还是数据的类型?
查看的是:变量存储的数据的类型。因为,变量无类型,但是它存储的数据有。
2.6 类型转换
数据类型之间,在特定的场景下,是可以相互转换的,如字符串转数字、数字转字符串等
2.6.1 常见的转换语句
同前面学习的type()语句一样,这三个语句,都是带有结果的(返回值)
我们可以用print直接输出
或用变量存储结果值
** 2.6.2 类型转换注意事项**
类型转换不是万能的,毕竟强扭的瓜不甜,我们需要注意:
1. 任何类型,都可以通过str(),转换成字符串
2. 字符串内必须真的是数字,才可以将字符串转换为数字
2. 字符串内必须真的是数字,才可以将字符串转换为数字
>
浮点数转整数会丢失精度,也就是小数部分
** 2.7 标识符**
是用户在编程的时候所使用的一系列名字,用于给变量、类、方法等命名。
** 2.7.1 标识符命名规则**
Python中,标识符命名的规则主要有3类:
•
内容限定
标识符命名中,只允许出现:
•英文
其余任何内容都不被允许。
注意:1. 不推荐使用中文
2.数字不可以开头
2.数字不可以开头
标识符命名规则2 —— 大小写敏感
以定义变量为例:
Andy = “安迪1”
andy = “安迪2”
字母a的大写和小写,是完全能够区分的。
Andy = “安迪1”
andy = “安迪2”
字母a的大写和小写,是完全能够区分的。
标识符命名规则3 —— 不可使用关键字
Python中有一系列单词,称之为关键字
关键字在Python中都有特定用途
我们不可以使用它们作为标识符
常见的关键字有:
** 2.7.2 变量的命名规范**
变量命名规范 —— 见名知意
变量的命名要做到:
a = “张三” name = ‘‘张三’’
很明显,大多数情况下,都是右侧的命名规范更合适一些
变量命名规范 —— 下划线命名法
多个单词组合变量名,要使用下划线做分隔。
firstnumber = 1
studentnickname = "小明"
studentnickname = “小明”
first_number = 1
student_nickname = “小明”
student_nickname = “小明”
很明显,下面的两个变量命名更合适一些
2.8 运算符
** 2.8.1 算术运算符**
算术运算符的演示:
** 2.8.2 赋值运算符**
** 2.8.3 复合赋值运算符**
** 2.9 字符串拓展**
引号的嵌套:
•
可以使用转移字符(</span>)来将引号解除效用,变成普通字符串
** 2.9.1 字符串拼接**
使用“+”号连接字符串变量或字符串字面量即可
name = "阿蛮"
print("这位青年的名字叫做" + name + ",他今年18岁了")
字符串无法和非字符串变量进行拼接 因为类型不一致,无法接上
name = "阿蛮"
age = 18
print("这位青年的名字叫做" + name + "年龄周岁是" + age)
** 2.9.2 字符串格式化**
当变量过多时,我们会发现上述的字符串拼接并不好用,由此引出字符串格式化这个方法。
name = "优快云"
message = "学IT就来%s" % name
print(message)
>
其中的,%s
所以,综合起来的意思就是:我先占个位置,等一会有个变量过来,我把它变成字符串放到占位的位置
所以,综合起来的意思就是:我先占个位置,等一会有个变量过来,我把它变成字符串放到占位的位置
多个变量占位,变量要用括号括起来,并按照占位的顺序填入:
>
数字也能用%s占位吗?
可以的哦,这里是将数字 转换成了 字符串哦
也就是数字57,变成了字符串"57"被放入占位的地方
可以的哦,这里是将数字 转换成了 字符串哦
也就是数字57,变成了字符串"57"被放入占位的地方
Python中,其实支持非常多的数据类型占位,最常用的是如下三类:
如下代码,完成字符串、整数、浮点数,三种不同类型变量的占位(演示):
** 2.9.3 格式化的精度控制**
我们可以使用辅助符号"m.n"来控制数据的宽度和精度
示例:
小数点和小数部分也算入宽度计算。如,对11.345设置了%7.2f 后,结果是:[空格][空格]11.35。2个空格补足宽度,小数部分限制2位精度后,四舍五入为 .35
(此处需要注意的是小数点本身也是占一个宽度的,然后有些朋友可能下去也试了 print("%4.2f" % 11.345) 这段代码,发现输出是11.35,带上小数点是有5个宽度的,这是怎么回事呢?简单解释就是编译器在格式化时,如果格式化代码出现问题,会根据语义进行了代码优化,不然你试试下面这个代码 print("%1.2f" % 11.345) ,会发现输出依然是11.35,足以证实)
%.2f:表示不限制宽度,只设置小数点精度为 2 ,如 11.345 设置 %.2f 后,结果是 11.35示例:
小数点和小数部分也算入宽度计算。如,对11.345设置了%7.2f 后,结果是:[空格][空格]11.35。2个空格补足宽度,小数部分限制2位精度后,四舍五入为 .35
(此处需要注意的是小数点本身也是占一个宽度的,然后有些朋友可能下去也试了 print(“%4.2f” % 11.345) 这段代码,发现输出是11.35,带上小数点是有5个宽度的,这是怎么回事呢?简单解释就是编译器在格式化时,如果格式化代码出现问题,会根据语义进行了代码优化,不然你试试下面这个代码 print(“%1.2f” % 11.345) ,会发现输出依然是11.35,足以证实)
%.2f:表示不限制宽度,只设置小数点精度为2,如11.345设置%.2f后,结果是11.35
体验代码:
** 2.9.4 字符串格式化方法二**
变量 }" 的格式来快速格式化通过语法:f"内容{
演示代码:
这种写法不做精度控制,也不理会类型,适用于快速格式化字符串
2.9.5 表达式的格式化
什么是表达式?
表达式:一条具有明确执行结果的代码语句
如:
1 + 1、5 * 2,就是表达式,因为有具体的结果,结果是一个数字
又或者,常见的变量定义:
name = “张三” age = 11 + 11
等号右侧的都是表达式呢,因为它们有具体的结果,结果赋值给了等号左侧的变量。
如:
1 + 1、5 * 2,就是表达式,因为有具体的结果,结果是一个数字
又或者,常见的变量定义:
name = “张三” age = 11 + 11
等号右侧的都是表达式呢,因为它们有具体的结果,结果赋值给了等号左侧的变量。
演示代码:
在无需使用变量进行数据存储的时候,可以直接格式化表达式,简化代码哦
** 2.10 数据输入 input()函数**
•
使用
input()
语句可以从键盘获取输入
print("请问你是谁")
name = input ()
print(f"Get!!! 你是{name}")
绿色字体内容是需要我们主动从键盘输入的数据,input 接收的便是我们输入的内容
input()语句其实是可以在要求使用者输入内容前,输出提示内容的哦,方式如下:
name = input ("请问你是谁 ")
print(f"Get!!! 你是{name}")
** 三、Python判断语句**
3.1 布尔类型 bool
布尔(bool)表达现实生活中的逻辑,即真和假
True本质上是一个数字记作1,False记作0
True本质上是一个数字记作1,False记作0
布尔类型也是字面量,也可以用变量存储
3.2 比较运算符
布尔类型的数据,不仅可以通过定义得到,也可以通过比较运算符进行内容比较得到。
比较运算的表达式返回值是布尔类型
result = 10 > 5
print(f"10 > 5 的结果是{result},类型是{type(result)}")
** 3.3 if语句**
3.3.1 if语句的基础语法格式
>
归属于if判断的代码语句块,需在前方填充4个空格缩进
Python通过缩进判断代码块的归属关系。
Python通过缩进判断代码块的归属关系。
age = int(input()) #将字符串转换为整型
print(f"我今年已经{age}岁了")
if age >= 18 :
print("我已经成年了")
print("即将步入大学生活")
print("时间过得真快")
如果age = 1