Python的注释
# 单行注释使用#即可
"""
这里是多行注释,使用的是三个双引号表示
"""Python的变量定义
Python是动态类型语言,在程序运行时才进行类型检查,变量的类型可以在程序运行过程中改变(一个变量可以接受不同类型的数据值),在这里数据类型上可以理解为和JS相似的脚本语言。
# 定义的格式:变量名 = 变量的值,如下:
user_name = 'chengang'Python的标识符
- 标识符 是程序员在代码中为变量、函数、类等元素所起的名字 (变量名 = 变量的值)。
- 标识符命名规则(规定):
- 只能包含字母(a-z,A-Z)、数字(0-9)、下划线(_)。
- 不能以数字开头 ,如:不能是 6num ,但可以是 num1、num2、nu6m 。
- 不能使用关键字:True、False、None、and、or、if、elif、else、for、while等 。
- 严格区分大小写:比如 age、Age、AGE是三个不同的标识符 。
- 特别约束规则:在Python的项目中,后续约定俗成的使用蛇形命名法:user_name、update_time这样的命名方式
Python的基本数据类型
- 数字类型
- 整数int
- 浮点数/小数float
- 字符串类型str:描述文本的数据类型
- 布尔类型bool:True为真,False为假,注意这点和JS不同,首字母大写,在设计数学运算的时候,会自动转换为0或1
- 空值类型NoneType:表示为空或者无值,仅包含一个值None
字符串类型
定义字符串的方式,常见的有三种,分别是 单引号、双引号、三引号。 具体语法如下:
# 单引号定义
s1 = 'It is very interesting'
# 双引号定义
s2 = "Hello Python"
# 三引号定义(多行字符串),在这里最常用的是为了保证字符串的格式不被打乱使用
s3 = """
尊敬的客户:
感谢您选择我们公司的产品。
我们将会为您竭诚的服务。
祝好 ~
"""- 如果在字符串中,本身就包含有 ' 或 " 呢,该怎么处理呢? 比如:
It's very interesting中的 ' 。 - 方案1:如果字符串中存在单引号 ' ,定义字符串就使用双引号就可以了。 如果字符串中存在上引号 " ,那定义字符串就使用单引号就可以了。
# 字符串中存在单引号 ' ,定义字符串使用上引号 "
s1 = "It's is very interesting"
# 字符串中存在双引号 " ,定义字符串使用单引号
s2 = '会议中,团队围绕着 "求是"、"求实" 展开了激烈的讨论'- 方案2:使用转义字符,来表示符号本身的含义,常见的转义字符如下:
| 转义字符 | 名称 | 作用 |
|---|---|---|
| \' | 单引号 | 表示单引号 ' 本身 |
| \" | 双引号 | 表示双引号 " 本身 |
| \n | 换行符 | 开始新的一行(换行) |
| \t | 制表符 | 增加缩进,缩进一个制表符(Tab)的大小 |
例如:
# \' 表示单引号本身
s1 = 'It\'s is very interesting'
print(s1)
# \" 表示双引号本身
s2 = "会议中,团队围绕着 \"求是\"、\"求实\" 展开了激烈的讨论"
print(s2)
# \n 表示换行 , \t 表示制表符
s3 = "尊敬的各位来宾: \n\t大家中午好!欢迎大家不远万里前来参加此次活动,我代表主办方对各位的到来表示衷心的感谢 ~"
print(s3)字符串的拼接
很多时候,我们需要将多个字符串拼接起来,拼接成一个字符串,然后再进行进一步的处理,这个时候,就可以直接使用(+)进行拼接,方式如下:
# 方式一: 多个字符串字面量直接写即可 (仅限于字面量)
slogan = "这是第一段" "这是第二段"
print(slogan)
# 方式二: 多个字符串使用 + 号拼接 (字面量、变量都可以)
slogan2 = "这是第一段" + "这是第二段"
print(slogan2)
s1 = "人生苦短"
s2 = "我用Python"
print("吉多范罗苏姆: " + s1 + ", " + s2)注意: + 号可以用来拼接两个字符串,但是无法直接将字符串与非字符串拼接起来。(如果是非字符串类型需要转换为字符串类型)
案例:
请根据自己的实际情况,输出个人的详细信息,具体结构如下:"大家好,我是王林,今年18岁,学习的专业是软件工程,爱好Python、Java"
# 需求:根据自己的实际情况,输出个人的详细信息,具体结构如下:"大家好,我是小王,今年18岁,学习的专业是软件工程,爱好Python、Java"
# 1 定义个人信息相关的变量
name = "张益达"
age = 22
specialty = "软件工程" # 专业
hobby = "唱跳rap和篮球"
# 2 字符串拼接,然后输出个人信息
print("大家好,我是"+name+",今年"+str(age)+"岁,学习的专业是"+specialty+",爱好"+hobby)**str(...):**这是python中的函数,该函数的作用是将一个非字符串类型的数据,转换为字符串类型。
字符串的格式化
- 方式一:通过
%占位符的形式完成字符串和变量的快速拼接。(其中 % 表示我要占位,s表示将变量转为字符串放入占位的位置)
"""
字符串格式化
- 方式一:通过 %占位符 的形式完成字符串和变量的快速拼接。(其中 % 表示我要占位,s表示将变量转为字符串放入占位的位置)
- 方式二:通过f-string格式化字符串的形式来完成快速格式化,语法为 f"内容{变量/表达式}"。【推荐】
"""
# - 方式一:通过 %占位符 的形式完成字符串和变量的快速拼接。(其中 % 表示我要占位,s表示将变量转为字符串放入占位的位置)
name = "张益达"
age = 22
height = 1.82
# 字符串拼接后并打印"姓名:xxx,年龄xx岁,身高xx米!"
print("姓名:%s,年龄%d岁,身高%f米!" % (name, age, height))
# 注意:前面有多少个占位符(%s、%d、%f),后面就需要有多少个变量(或数据),前后数量需要一致。其中%nf中的n表示保留n位小数(四舍五入)
print("姓名:%s,年龄%d岁,身高%.1f米!" % (name, age, height))提示:前面有多少个占位符(%s、%d、%f),后面就需要有多少个变量(或数据),前后数量需要一致。其中%nf中的n表示保留n位小数(四舍五入)。
- 方式二:通过f-string格式化字符串的形式来完成快速格式化,语法为
f"内容{变量/表达式}"。【推荐】
"""
字符串格式化
- 方式一:通过 %占位符 的形式完成字符串和变量的快速拼接。(其中 % 表示我要占位,s表示将变量转为字符串放入占位的位置)
- 方式二:通过f-string格式化字符串的形式来完成快速格式化,语法为 f"内容{变量/表达式}"。【推荐】
"""
name = "张益达"
age = 22
height = 1.82
# - 方式二:通过f-string格式化字符串的形式来完成快速格式化,语法为 f"内容{变量/表达式}"。【推荐】
print(f"姓名:{name},年龄{age}岁,身高{height}米!")
print(f"姓名:{name},年龄{age}岁,身高{height:.3f}米!") # :.1f表示保留3位小数提示:f-string格式化字符串中,{}中不仅限于变量,你还可以在花括号中放入任何有效的Python表达式,包括算术运算、函数调用等。
数据的强制转换
其它类型转为int类型:
int(..)其它类型转为str类型:
str(..)其它类型转为float类型:
float(..)其它类型转为bool类型:
bool(..)
判断数据类型
# 导入包
from operator import is_none
user_age = 18
user_name = 'chengang'
is_study = True
none_value = None
user_height = 1.70
print(type(user_age))
print(type(user_age)==int)
print(type(user_name))
print(type(user_name)==str)
print(type(is_study))
print(type(is_study)==bool)
print(type(user_height))
print(type(user_height)==float)
print(type(none_value))
# 判断是否为None需要使用is_none
print(is_none(none_value))
# 输出结果如下:
# <class 'int'>
# True
# <class 'str'>
# True
# <class 'bool'>
# True
# <class 'float'>
# True
# <class 'NoneType'>
# Trueisinstance方法
isinstance() 语句来检查数据是否属于指定的类型,返回的是一个bool值,值为True表示该值就是指定类型的,如果值为False表示该值不是指定的类型的。具体的语法为:isinstance(数据/变量,类型)。可以参考JS中的instanceof方法。
# 定义变量
num = 10
score = 98.5
name = "Python"
is_ok = True
color = None
# 查看数据或变量是否是指定的类型
print(isinstance(10, int))
print(isinstance(98.5, float))
print(isinstance(num, int))
print(isinstance(score, float))
# 输出结果为:
# True
# True
# True
# True输入与输出
- 输入,指的就是在程序中接收键盘中录入的数据。可以使用python中提供的 input语句(函数),具体的用法为:
s = input(提示信息) - 输出,指的是将数据输出到控制带中。可以使用python中提供的print语句(函数),具体的语法为:
print(数据...)
"""
- 输入,指的就是在程序中接收键盘中录入的数据。可以使用python中提供的 input语句(函数),具体的用法为:s = input(提示信息)
- 输出,指的是将数据输出到控制带中。可以使用python中提供的print语句(函数),具体的语法为:print(数据...)
"""
# - 输入,指的就是在程序中接收键盘中录入的数据。可以使用python中提供的 input语句(函数),具体的用法为:s = input(提示信息)
# 获取用户键盘输入的数据,赋值给变量 :s = input(提示信息)
name = input("请输入姓名:") # 这个一个阻塞的动作,如果用户没有输入任何内容,程序就会停在这一行,知道用户输入内容才继续往下执行。
age = int(input("请输入年龄:")) # int(数据):将数据转换成int整数类型
height = float(input("请输入身高(米):")) # float(数据):将数据转换成float浮点数类型
# 输出结果:print(数据...)
print(f"姓名:{name},年龄{age}岁,身高{height}米!")
print(f"姓名:{name},年龄{age}岁,身高{height:.3f}米!") # :.1f表示保留3位小数注意:无论键盘输入什么样的数据,获取到的数据永远都是字符串类型 (如果需要进一步的运算处理,根据需要转换处理)。
运算符
算术运算符
是用于执行基本的数学运算的符号,作用于一个或多个操作数上,并产生一个计算结果。
| 运算符 | 描述 | 举例说明 |
|---|---|---|
| + | 加法 | 1 + 5:1加上5 |
| - | 减法 | 8 – 3 :8减3 |
| ***** | 乘法 | 3 * 8 :3乘以8 |
| / | 除法 | 10 / 5 :10除以5,除法结果是小数 |
| // | 整除 | 10 // 3 :10整除3,整除结果为整数 |
| % | 取余/求模 | 10 % 3 :10模于3,结果为1(10除3取余数) |
| ** | 幂指数 | 10 ** 3 :10的3次方 |
代码示例如下:
# 算术运算符:执行算术运算的符号,有:+ - * / //(整除) %(取余) **(幂指数/n次方)
print(5 + 2) # 7
print(5 - 2) # 3
print(5 * 2) # 10
print(5 / 2) # 2.5
print(5 // 2) # 2
print(5 % 2) # 1
print(5 ** 2) # 5的2次方,25赋值运算符
赋值运算符是用于将值(或表达式的结果)保存到变量中的运算符。(把右边的值,赋给左边的变量)
| 运算符 | 描述 | 举例说明 |
|---|---|---|
| = | 赋值运算符 | 把 = 号右边的结果赋值给左边的变量,如 num = 1+2,结果num的值为3 |
| += | 加法赋值运算符 | num += 2 等效于 num = num + 2 |
| -= | 减法赋值运算符 | num -= 2 等效于 num = num – 2 |
| *= | 乘法赋值运算符 | num *= 2 等效于 num = num * 2 |
| /= | 除法赋值运算符 | num /= 2 等效于 num = num / 2 |
| %= | 取模赋值运算符 | num %= 2 等效于 num = num % 2 |
| //= | 取整除赋值运算符 | num //= 2 等效于 num = num // 2 |
| **= | 幂赋值运算符 | num **= 2 等效于 num = num ** 2 |
代码示例:
# # # # # # # # # # # # 赋值运算符: = += -= *= /= %= //= **= # # # # # # # # # # # # #
num = 85
num += 10 # num = num + 10
print("num += 10 后, num = ", num) # 95
num -= 10 # num = num - 10
print("num -= 10 后, num = ", num) # 85
num *= 10 # num = num * 10
print("num *= 10 后, num = ", num) # 850
# num /= 10 # num = num / 10
print("num /= 10 后, num = ", num) # 85.0
num //= 10 # num = num // 10
print("num //= 10 后, num = ", num) # 8.0
num %= 3 # num = num % 3
print("num %= 3 后, num = ", num) # 2.0
num **= 3 # num = num ** 3
print("num **= 3 后, num = ", num) # 8.0比较运算符
比较运算符,也称为关系运算符,用于比较两个值之间的关系。会计算运算符两边的表达式,然后返回一个布尔值作为结果(True – 表示比较关系成立;False – 表示比较关系不成立)。
| 运算符 | 描述 | 举例说明 |
|---|---|---|
| == | 等于 | a == b 判断a是否等于b |
| != | 不等于 | a != b 判断a是否不等于b |
| > | 大于 | a > b 判断a是否大于b |
| >= | 大于等于 | a >= b 判断a是否大于等于b |
| < | 小于 | a < b 判断a是否小于b |
| <= | 小于等于 | a <= b 判断a是否小于b |
代码示例:
# 比较运算符:也叫关系运算法,用来比较两个数(变量)的大小。最终的结果是一个bool类型的True或者False。True表示成立,False表示不成立。
print(10 == 20) # False
print("10" == 10) # 类型不同,结果也是False
print(10 != 20) #True
print(10 > 20) #False
print(10 >= 20) #False
print(10 < 20) #True
print(10 <= 20) #True逻辑运算符
是用于连接多个条件(布尔)表达式(其值为 "真" 或 "假"),并返回一个最终布尔结果的运算符。 如:a < b and b < c
| 运算符 | 描述 | 举例说明 |
|---|---|---|
| and | 逻辑与(并且) | 同时成立才是符合条件的(左右两边都为True,结果才为True) |
| or | 逻辑或(或者) | 只要有一个符合要求的即可(只要左右两边有一个为True,结果就位True) |
| not | 逻辑非(取反) | 取反操作,True变为False,False变为True |
代码示例:
"""
逻辑运算符:用来连接多个条件/表达式的符号,最终得到一个bool类型的True或者False。
and 并且:左右两边都为True,结果才为True,有一个是False结果就是False
or 或者:左右两边有一个是True,结果就是True,都为False结果才是False。
not 取反:原来是True取反就是False,原来是False取反就是True。
"""
# 需求1:键盘输入一个整数,判断这个数字是否在10-20之间。
num = int(input("请输入一个整数:"))
print(f"这个数字是否在10-20之间:{num >= 10 and num <= 20}")
print(f"这个数字是否在10-20之间:{10 <= num <= 20}") # python中支持,但是其它语言不支持
# 需求2:键盘输入一个整数,判断这个数字是否不在10-20之间。
print(f"这个数字是否不在10-20之间:{num < 10 or num > 20}")