Skip to content

Python的注释

python
# 单行注释使用#即可

"""
这里是多行注释,使用的是三个双引号表示
"""

Python的变量定义

Python是动态类型语言,在程序运行时才进行类型检查,变量的类型可以在程序运行过程中改变(一个变量可以接受不同类型的数据值),在这里数据类型上可以理解为和JS相似的脚本语言。

python
# 定义的格式:变量名 = 变量的值,如下:
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

字符串类型

定义字符串的方式,常见的有三种,分别是 单引号、双引号、三引号。 具体语法如下:

python
# 单引号定义
s1 = 'It is very interesting'

# 双引号定义
s2 = "Hello Python"

# 三引号定义(多行字符串),在这里最常用的是为了保证字符串的格式不被打乱使用
s3 = """
尊敬的客户:
  感谢您选择我们公司的产品。
  我们将会为您竭诚的服务。
  祝好 ~
"""
  • 如果在字符串中,本身就包含有 ' 或 " 呢,该怎么处理呢? 比如:It's very interesting 中的 ' 。
  • 方案1:如果字符串中存在单引号 ' ,定义字符串就使用双引号就可以了。 如果字符串中存在上引号 " ,那定义字符串就使用单引号就可以了。
python
# 字符串中存在单引号 ' ,定义字符串使用上引号 "
s1 = "It's is very interesting"

# 字符串中存在双引号 " ,定义字符串使用单引号
s2 = '会议中,团队围绕着 "求是"、"求实" 展开了激烈的讨论'
  • 方案2:使用转义字符,来表示符号本身的含义,常见的转义字符如下:
转义字符名称作用
\'单引号表示单引号 ' 本身
\"双引号表示双引号 " 本身
\n换行符开始新的一行(换行)
\t制表符增加缩进,缩进一个制表符(Tab)的大小

例如:

python
# \' 表示单引号本身
s1 = 'It\'s is very interesting'
print(s1)

# \" 表示双引号本身
s2 = "会议中,团队围绕着 \"求是\"\"求实\" 展开了激烈的讨论"
print(s2)

# \n 表示换行 , \t 表示制表符
s3 = "尊敬的各位来宾: \n\t大家中午好!欢迎大家不远万里前来参加此次活动,我代表主办方对各位的到来表示衷心的感谢 ~"
print(s3)

字符串的拼接

很多时候,我们需要将多个字符串拼接起来,拼接成一个字符串,然后再进行进一步的处理,这个时候,就可以直接使用(+)进行拼接,方式如下:

python
# 方式一: 多个字符串字面量直接写即可 (仅限于字面量)
slogan = "这是第一段" "这是第二段"
print(slogan)

# 方式二: 多个字符串使用 + 号拼接 (字面量、变量都可以)
slogan2 = "这是第一段" + "这是第二段"
print(slogan2)

s1 = "人生苦短"
s2 = "我用Python"
print("吉多范罗苏姆: " + s1 + ", " + s2)

注意: + 号可以用来拼接两个字符串,但是无法直接将字符串与非字符串拼接起来。(如果是非字符串类型需要转换为字符串类型)

案例:

请根据自己的实际情况,输出个人的详细信息,具体结构如下:"大家好,我是王林,今年18岁,学习的专业是软件工程,爱好Python、Java"

python
# 需求:根据自己的实际情况,输出个人的详细信息,具体结构如下:"大家好,我是小王,今年18岁,学习的专业是软件工程,爱好Python、Java"
# 1 定义个人信息相关的变量
name = "张益达"
age = 22
specialty = "软件工程"  # 专业
hobby = "唱跳rap和篮球"
# 2 字符串拼接,然后输出个人信息
print("大家好,我是"+name+",今年"+str(age)+"岁,学习的专业是"+specialty+",爱好"+hobby)

**str(...):**这是python中的函数,该函数的作用是将一个非字符串类型的数据,转换为字符串类型。

字符串的格式化

  • 方式一:通过 %占位符 的形式完成字符串和变量的快速拼接。(其中 % 表示我要占位,s表示将变量转为字符串放入占位的位置)
python
"""
字符串格式化
    - 方式一:通过 %占位符 的形式完成字符串和变量的快速拼接。(其中 % 表示我要占位,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"内容{变量/表达式}"。【推荐】
python
"""
字符串格式化
    - 方式一:通过 %占位符 的形式完成字符串和变量的快速拼接。(其中 % 表示我要占位,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(..)

判断数据类型

python
# 导入包
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'>
# True

isinstance方法

isinstance() 语句来检查数据是否属于指定的类型,返回的是一个bool值,值为True表示该值就是指定类型的,如果值为False表示该值不是指定的类型的。具体的语法为:isinstance(数据/变量,类型)。可以参考JS中的instanceof方法。

python
# 定义变量
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
"""
- 输入,指的就是在程序中接收键盘中录入的数据。可以使用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次方

代码示例如下:

python
# 算术运算符:执行算术运算的符号,有:+   -   *   /   //(整除)  %(取余)   **(幂指数/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

代码示例:

python
# # # # # # # # # # # #  赋值运算符: = += -= *= /= %= //= **=   # # # # # # # # # # # # #
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

代码示例:

python
# 比较运算符:也叫关系运算法,用来比较两个数(变量)的大小。最终的结果是一个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

代码示例:

python
"""
逻辑运算符:用来连接多个条件/表达式的符号,最终得到一个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}")