Python核心编程总结(一基础概念与语法)
Posted 生命是有光的
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python核心编程总结(一基础概念与语法)相关的知识,希望对你有一定的参考价值。
✍、脑图时刻
1、基本语法
1.1、注释
注释分为两类:单行注释 和多行注释
- 单行注释:只能注释一行内容
# 注释内容 # 后面要加空格
- 多行注释:可以注释多行内容
"""
第一行注释
第二行注释
第三行注释
"""
'''
注释1
注释2
注释3
'''
1.2、变量
变量名自定义,要满足标识符命名规则
my_name = 'TOM';
print(my_name)
schoolName = '林小秦';
print(schoolName)
1.2.1、标识符
-
由数字,字母,下划线开头
-
不能数字开头
-
不能使用内置关键字(如图)
- 严格区分大小写
1.2.2、命名习惯
-
大驼峰:即每个单词首字母都大写,例如:
MyName
-
小驼峰:第二个(含) 以后的单词首字母都大写,例如:
myName
-
下划线:例如:
my_name
1.3、数据类型
数据类型 | 说明 |
---|---|
int | 整型 |
float | 浮点型 |
bool | 布尔型 |
str | 字符串 |
list | 列表 |
tuple | 元组 |
set | 集合 |
dict | 字典 |
检测数据类型的方法:type()
a = 1
print(type(a)) # <class 'int'> -- 整型
b = 1.1
print(type(b)) # <class 'float'> -- 浮点型
c = True
print(type(c)) # <class 'bool'> -- 布尔型
d = '12345'
print(type(d)) # <class 'str'> -- 字符串
e = [10, 20, 30]
print(type(e)) # <class 'list'> -- 列表
f = (10, 20, 30)
print(type(f)) # <class 'tuple'> -- 元组
h = 10, 20, 30
print(type(h)) # <class 'set'> -- 集合
g = 'name': 'TOM', 'age': 20
print(type(g)) # <class 'dict'> -- 字典
1.4、输出
1.4.1、格式化输出
格式符号 | 转换 |
---|---|
%d🔥 | 有符号的十进制整数 |
%f🔥 | 浮点数 |
%s🔥 | 字符串 |
%c | 字符 |
%u | 无符号十进制数 |
%o | 八进制整数 |
%x | 十六进制整数(小写ox) |
%X | 十六进制整数(大写OX) |
%e | 科学计数法(小写’e’) |
%E | 科学计数法(大写’E’) |
%g | %f和%e的简写 |
%G | %f和%E的简写 |
1.4.2、技巧
-
%06d
,表示输出的整数显示位数,不足以0补全 -
%.2f
,表示小数点后显示的小数位数
1.4.3、体验
- 格式化字符串除了
%s
,还可以写为f'表达式'
,写起来简单
age = 18
name = 'TOM'
weight = 75.5
student_id = 1
# 我的名字是TOM
print('我的名字是%s' % name)
# 我的学号是0001
print('我的学号是%4d' % student_id)
# 我的体重是75.50公⽄斤
print('我的体重是%.2f公⽄斤' % weight)
# 我的名字是TOM,今年年18岁了了
print('我的名字是%s,今年年%d岁了了' % (name, age))
# 我的名字是TOM,明年19岁了了
print('我的名字是%s,明年%d岁了了' % (name, age + 1))
# 我的名字是TOM,明年19岁了了
print(f'我的名字是name, 明年age + 1岁了了')
1.4.4、转义字符
\\n
: 换行\\t
: 制表符,一个 tab 键(4个空格) 的距离
1.4.5、结束符
在 python 中,print()
默认自带end='\\n'
这个换行结束符,所以导致每两个 print
会直接换行展示
print('输出的内容',end='\\n')
print('123') # 默认自带end='\\n'
1.5、输入
-
语法:
input("提示信息")
-
在 python 中,input 会把接收到数据都当作字符串处理
password = input('请输⼊入您的密码:')
print(f'您输⼊入的密码是password')
# <class 'str'>
print(type(password))
1.6、转换数据类型函数
函数 | 说明 |
---|---|
int(x,[base])🔥 | 将 x 转换为一个整数 |
float(x)🔥 | 将 x 转换为一个浮点数 |
complex(real,[imag]) | 创建一个复数,real 为实部,imag为虚部 |
str(x)🔥 | 将对象 x 转换为字符串 |
repr(x) | 将对象 x 转换为表达式字符串 |
eval(str)🔥 | 用来计算在字符串中的有效 python 表达式,并返回一个对象 |
tuple(s)🔥 | 将序列 s 转换为一个元组 |
list(s)🔥 | 将序列 s 转换为一个列表 |
chr(x) | 将一个整数转换为 Unicode 字符 |
ord(x) | 将一个字符转换为它的 ASCII 整数值 |
hex(x) | 将一个整数转换为一个十六进制字符串 |
oct(x) | 将一个整数转换为一个八进制字符串 |
bin(x) | 将一个整数转换为一个二进制字符串 |
需求:input接收⽤用户输⼊入,⽤用户输⼊入“1”,将这个数据1转换成整型。
# 1. 接收⽤用户输⼊入
num = input('请输⼊入您的幸运数字:')
# 2. 打印结果
print(f"您的幸运数字是num")
# 3. 检测接收到的⽤用户输⼊入的数据类型 -- str类型
print(type(num))
# 4. 转换数据类型为整型 -- int类型
print(type(int(num)))
1.6.1、练习
# 1. float() -- 转换成浮点型
num1 = 1
print(float(num1)) # 1.0
print(type(float(num1))) # <class 'float'>
# 2. str() -- 转换成字符串类型
num2 = 10
print(type(str(num2))) # <class 'str'>
# 3. tuple() -- 将⼀一个序列转换成元组
list1 = [10, 20, 30]
print(tuple(list1)) # (10, 20, 30)
print(type(tuple(list1))) # <class 'tuple'>
# 4. list() -- 将⼀一个序列转换成列表
t1 = (100, 200, 300)
print(list(t1)) # [100, 200, 300]
print(type(list(t1))) # <class 'list'>
# 5. eval() -- 将字符串中的数据转换成Python表达式原本类型
str1 = '10'
str2 = '[1, 2, 3]'
str3 = '(1000, 2000, 3000)'
print(type(eval(str1))) # <class 'int'>
print(type(eval(str2))) # <class 'list'>
print(type(eval(str3))) # <class 'tuple'>
1.7、运算符
- 算数运算符
- 赋值运算符
- 复合赋值运算符
- 比较运算符
- 逻辑运算符
1.7.1、算数运算符
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 | 1 + 1 = 2 |
- | 减 | 1 - 1 = 0 |
* | 乘 | 2 * 2 =4 |
/ | 除 | 10 / 2 = 5 |
// | 整除 | 9 // 4 =2 |
% | 取余 | 9 % 4 = 1 |
** | 指数 | 2 ** 4 = 16 |
() | 括号 | 用来提高运算优先级 |
混合运算优先级顺序:()
高于 **
高于 *
/
//
%
高于 +
-
1.7.2、赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
= | 赋值 | 将 = 右侧的结果赋值给等号左侧的变量 |
- 单个变量赋值
num = 1
print(num)
- 多个变量赋值
num1, float1, str1 = 10, 0.5, 'hello world!'
print(num1) # 10
print(float1) # 0.5
print(str1) # hello world!
- 多个变量赋相同的值
a = b = 10
print(a) # 10
print(b) # 10
1.7.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 |
a = 100
a += 1
# 输出101 a = a + 1,最终a = 100 + 1
print(a)
b = 2
b *= 3
# 输出6 b = b * 3,最终b = 2 * 3
print(b)
c = 10
c += 1 + 2
# 输出13, 先算运算符右侧1 + 2 = 3, c += 3 , 推导出c = 10 + 3
print(c)
1.7.4、比较运算符
比较运算符也叫关系运算符,通常用来判断
运算符 | 描述 | 实例 |
---|---|---|
== | 判断相等,如果两个操作数的结果相等,则条件结果为 真True,否则条件结果为假False | 如a=3,b=3,则(a == b) 为True |
!= | 不不等于 。如果两个操作数的结果不不相等,则条件为 真(True),否则条件结果为假(False) | 如a=3,b=3,则(a == b) 为 True如 a=1,b=3,则(a != b) 为 True |
> | 运算符左侧操作数结果是否⼤大于右侧操作数结果, 如果大于,则条件为真,否则为假 | 如a=7,b=3,则(a > b) 为 True |
< | 运算符左侧操作数结果是否⼩小于右侧操作数结果, 如果小于,则条件为真,否则为假 | 如a=7,b=3,则(a < b) 为 False |
>= | 运算符左侧操作数结果是否⼤大于等于右侧操作数结 果,如果大于,则条件为真,否则为假 | 如a=7,b=3,则(a < b) 为 False如 a=3,b=3,则(a >= b) 为 True |
<= | 运算符左侧操作数结果是否⼩小于等于右侧操作数结 果,如果小于,则条件为真,否则为假 | 如a=3,b=3,则(a <= b) 为 True |
a = 7
b = 5
print(a == b) # False
print(a != b) # True
print(a < b) # False
print(a > b) # True
print(a <= b) # False
print(a >= b) # True
1.7.5、逻辑运算符
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔"与":如果 x 为 False,x and y 返回 False,否则它返回 y 的值。 | True and False, 返回 False。 |
or | x or y | 布尔"或":如果 x 是 True,它返回 True,否则 它返回 y 的值。 | False or True, 返回 True。 |
not | not | 布尔"非":如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not True 返回 False, not False 返回 True |
a = 1
b = 2
c = 3
print((a < b) and (b < c)) # True
print((a > b) and (b < c)) # False
print((a > b) or (b < c)) # True
print(not (a > b)) # True
1.7.6、数字之间的逻辑运算
a = 0
b = 1
c = 2
# and运算符,只要有一个值为0,则结果为0,否则结果为最后一个非0数字
print(a and b) # 0
print(b and a) # 0
print(a and c) # 0
print(c and a) # 0
print(b and c) # 2
print(c and b) # 1
# or运算符,只有所有值为0结果才为0,否则结果为第一个非0数字
print(a or b) # 1
print(a or c) # 2
print(b or c) # 1
1.8、IF
1.8.1、if…else…
- 如果用户年龄大于等于18岁,即成年,输出"已经成年,可以上网"
# input接收的是字符串,需要转换为整型
age = int(input("请输入您的年龄:"))
if age >= 18:
print(f"您的年龄为age,成年可以上网")
else:
print(f"您的年龄为age,未成年无法上网")
注意:与 java 语言不同的是, if、else、while、for 后面都需要加 冒号
:
1.8.1、if…elif…
- 中国合法工作年龄为18-60岁,如果年龄小于18的情况为童工,不合法;如果年龄在18*-60岁之间,则为合法工龄;大于60岁为法定退休年龄
# input接收的是字符串,需要转换为整型
age = int(input("请输入您的年龄:"))
if age < 18:
print(f"您的年龄小于18,不能进行工作,属于童工")
elif 18 <= age <= 60:
# age >= 18 and age <= 60
print(f"您的年龄为合法年龄,可以工作")
elif age > 60:
print(f"您的年龄不属于合法工作年龄")
1.8.2、IF嵌套
- 坐公交:如果有钱可以上车,没钱不能上车,上车后如果有空座,可以坐下,如果没空座,则要站着,怎么书写程序。
money = 1
seat = 0
if money == 1:
print("有钱,请上车")
if seat == 1:
print("有座位,请坐")
else:
print("没座位,不能坐")
else:
print("没钱,不能上车")
- 猜拳游戏
玩家手动出拳,电脑随机出拳
导入random模块
import 模块名
使用random模块中的随机整数功能
random.randint(开始,结束)
# random.randint(0,2)
"""
提示:0-石头,1-剪刀,2-布
1.出拳
玩家输入出拳
电脑随机出拳
2.判断输赢
玩家获胜
平局
电脑获胜
"""
# 导入random模块
import random
# 计算电脑出拳的随机数字
computer = random.randint(0, 2)
# 玩家出拳
player = int(input("请玩家出拳: 0--石头,1--剪刀,2--布"))
# 玩家胜利 p0,c1 p1,c2 p2,c0
if((player==0) and (computer==1) or ((player==1) and (computer==2)) or ((player==2) and (computer==0))):
print(f"玩家出拳是player")
print(f"电脑出拳是computer")
print("玩家获胜")
elif player==computer:
print(f"玩家出拳是player")
print(f"电脑出拳是computer")
print("平局")
else:
print(f"玩家出拳是player")
print(f"电脑出拳是computer")
print("电脑获胜")
1.8.3、三目运算符
a = 1
b = 2
c = a if a>b else b
print(c)
# 条件成立执行的表达式 if 条件 else 条件不成立执行的表达式
1.9、循环
1.9.1、while
- 计算1-100的累加和
i = 1
sum = 0
while i <= 100:
sum += i
i += 1
print(sum)
- 计算1-100的偶数累加和
①:可以加入判断是否为偶数,对2取余
# 方法一:条件判断和对2取余数为0则累加计算
i = 1
sum = 0
while i <= 100:
if i %2 ==0:
sum += i
i += 1
print(sum)
# 方法二:计数器控制增量为2
i = 0
sum = 0
while i <= 100:
sum += i
i += 2
print(sum)
1.9.2、break
- 作用:终止此循环
i = 1
while i <= 5:
if i ==4:
print(f'吃饱了不吃了')
break
print(f'吃了第i个苹果')
i +=1
1.9.3、continue
- 作用:退出当前一次循环继而执行下一次循环代码
i = 1
while i <= 5:
if i == 3:
print(f'大虫子,第i个不吃了')
# 在 continue 之前一定要修改计数器,否则会陷入死循环
i += 1
continue # continue 退出此次循环,后面的代码就不会执行,i就不会+1
print(f'吃了第i个苹果')
i +=1
1.9.4、while 循环嵌套
- 打印星号(正方形)
分析:一行输出5个星号,重复打印5行
"""
1.打印一个星星*
2.一行5个 循环 --- 打印一个星星的代码 ,不换行
3.打印5行 循环--一行五个的代码
"""
j = 0
while j < 5:
# 一行星星开始
i = 0
while i< 5:
print("*" , end=" ")
i += 1
#一行星星结束:换行显示下一行
#这里借助空的print,利用print默认结束符换行
print()
j += 1
- 打印星号(三角形)
分析:一行输出星星的个数和行数是相等的,每行:重复打印行号数字个星号,将打印行星号的命令重复执行5次实现打印5行
以上是关于Python核心编程总结(一基础概念与语法)的主要内容,如果未能解决你的问题,请参考以下文章