**不重要的内容:**我只是一名大一学生,还有很多的不足。这些文章只是我的学习笔记,谈不上知识原创分享。如文章内容有知识性错误欢迎指出;如果您觉得排版有问题,影响阅读,也可指出,欢迎你的阅读和评论,,谢谢。文末留有我的博客,会不定期更新,一起进步,一起优秀呀。(因为该内容转载自我的博客,所以没有添加一些好玩的表情包)
一、输出
作用:输出内容
print('hello Python')
age = 18
print(age)
# 需求:输出“今年我的年龄是18岁”
格式化输出
所谓的格式化输出即按照一定的格式输出内容。
1.1 格式化符号
格式符号 | 转换 |
---|---|
%s | 字符串 |
%d | 有符号的十进制整数 |
%f | 浮点数 |
%c | 字符 |
%u | 无符号十进制整数 |
%o | 八进制整数 |
%x | 十六进制整数(小写ox) |
%X | 十六进制整数(大写OX) |
%e | 科学计数法(小写’e’) |
%E | 科学计数法(大写’E’) |
%g | %f和%e的简写 |
%G | %f和%E的简写 |
技巧
- %03d,表示输出的整数显示位数,不足以0补全,超出当前位数则原样输出
- %.2f,表示小数点后显示的小数位数。
1.2 体验
格式化字符串除了%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.3 转义字符
\n
:换行。\t
:制表符,一个tab键(4个空格)的距离。
1.4 结束符
注意
print('输出的内容', end="\n")
在Python中,print(), 默认自带
end="\n"
这个换行结束符,所以导致每两个
重点
- 格式化符号
- %s:格式化输出字符串
- %d:格式化输出整数
- %f:格式化输出浮点数
- f-字符串
- f’{表达式}’
- 转义字符
- \n:换行
- \t:制表符
- print结束符
print('内容', end="")
一. 输入
在Python中,程序接收用户输入的数据的功能即是输入。
1.2 输入的语法
input("提示信息")
1.3 输入的特点
- 当程序执行到
input
,等待用户输入,输入完成之后才继续向下执行。 - 在Python中,
input
接收用户输入后,一般存储到变量,方便使用。 - 在Python中,
input
会把接收到的任意用户输入的数据都当做字符串处理。
password = input('请输入您的密码:')
print(f'您输入的密码是{password}')
# <class 'str'>
print(type(password))
重点
- 输入功能
- input(‘提示文字’)
- 输入的特点
- 一般将input接收的数据存储到变量
- input接收的任何数据默认都是字符串数据类型
一. 了解条件语句
假设一个场景:
- 同学们这个年龄去过网吧吗?
- 去网吧进门想要上网必须做的一件事是做什么?(考虑重点)
- 为什么要把身份证给工作人员?
- 是不是就是为了判断是否成年?
- 是不是如果成年可以上网?如果不成年则不允许上网?
其实这里所谓的判断就是条件语句,即条件成立执行某些代码,条件不成立则不执行这些代码。
二. if 语法
2.1 语法
if 条件:
条件成立执行的代码1
条件成立执行的代码2
......
2.2 快速体验
if True:
print('条件成立执行的代码1')
print('条件成立执行的代码2')
# 下方的代码没有缩进到if语句块,所以和if条件无关
print('我是无论条件是否成立都要执行的代码')
三. 实例:上网
需求分析:如果用户年龄大于等于18岁,即成年,输出"已经成年,可以上网"。
3.1 简单版
age = 20
if age >= 18:
print('已经成年,可以上网')
print('系统关闭')
3.2 进阶版
新增需求:用户可以输出自己的年龄,然后系统进行判断是否成年,成年则输出"您的年龄是’用户输入的年龄’,已经成年,可以上网"。
# input接受用户输入的数据是字符串类型,条件是age和整型18做判断,所以这里要int转换数据类型
age = int(input('请输入您的年龄:'))
if age >= 18:
print(f'您的年龄是{age},已经成年,可以上网')
print('系统关闭')
四. if…else…
作用:条件成立执行if下方的代码; 条件不成立执行else下方的代码。
思考:网吧上网的实例,如果成年,允许上网,如果不成年呢?是不是应该回复用户不能上网?
4.1 语法
if 条件:
条件成立执行的代码1
条件成立执行的代码2
......
else:
条件不成立执行的代码1
条件不成立执行的代码2
......
4.2 实用版:网吧上网
age = int(input('请输入您的年龄:'))
if age >= 18:
print(f'您的年龄是{age},已经成年,可以上网')
else:
print(f'您的年龄是{age},未成年,请自行回家写作业')
print('系统关闭')
注意:如果条件成立执行了某些代码,那么其他的情况的代码将不会执行。
五、多重判断
思考:中国合法工作年龄为18-60岁,即如果年龄小于18的情况为童工,不合法;如果年龄在18-60岁之间为合法工龄;大于60岁为法定退休年龄。
5.1 语法
if 条件1:
条件1成立执行的代码1
条件1成立执行的代码2
......
elif 条件2:
条件2成立执行的代码1
条件2成立执行的代码2
......
......
else:
以上条件都不成立执行执行的代码
多重判断也可以和else配合使用。一般else放到整个if语句的最后,表示以上条件都不成立的时候执行的代码。
5.2 实例:工龄判断
age = int(input('请输入您的年龄:'))
if age < 18:
print(f'您的年龄是{age},童工一枚')
elif (age >= 18) and (age <= 60):
print(f'您的年龄是{age},合法工龄')
elif age > 60:
print(f'您的年龄是{age},可以退休')
拓展:
age >= 18 and age <= 60
可以化简为18 <= age <= 60
。
六、if嵌套
思考:坐公交:如果有钱可以上车,没钱不能上车;上车后如果有空座,则可以坐下;如果没空座,就要站着。怎么书写程序?
6.1 语法
if 条件1:
条件1成立执行的代码
条件1成立执行的代码
if 条件2:
条件2成立执行的代码
条件2成立执行的代码
注意:条件2的if也是处于条件1成立执行的代码的缩进关系内部。
6.2 实例:坐公交
6.2.1 判断是否能上车
"""
1. 如果有钱,则可以上车
2. 上车后,如果有空座,可以坐下
上车后,如果没有空座,则站着等空座位
如果没钱,不能上车
"""
# 假设用 money = 1 表示有钱, money = 0表示没有钱
money = 1
if money == 1:
print('土豪,不差钱,顺利上车')
else:
print('没钱,不能上车,追着公交车跑')
6.2.2 判断是否能坐下
"""
1. 如果有钱,则可以上车
2. 上车后,如果有空座,可以坐下
上车后,如果没有空座,则站着等空座位
如果没钱,不能上车
"""
# 假设用 money = 1 表示有钱, money = 0表示没有钱; seat = 1 表示有空座,seat = 0 表示没有空座
money = 1
seat = 0
if money == 1:
print('上车')
if seat == 1:
print('有空座,可以坐下')
else:
print('没有空座,站着')
else:
print('没钱,不能上车')
七. 应用:猜拳游戏
需求分析:
-
参与游戏的角色
- 玩家
- 手动出拳
- 电脑
- 随机出拳
- 玩家
-
判断输赢
- 玩家获胜
玩家 | 电脑 |
---|---|
石头 | 剪刀 |
剪刀 | 布 |
布 | 石头 |
- 平局
- 玩家出拳 和 电脑出拳相同
- 电脑获胜
随机做法:
1. 导出random模块
2. random.randint(开始,结束) <font color=red> 注意:范围包括左右界</font>
"""
提示:0-石头,1-剪刀,2-布
1. 出拳
玩家输入出拳
电脑随机出拳
2. 判断输赢
玩家获胜
平局
电脑获胜
"""
# 导入random模块
import random
# 计算电脑出拳的随机数字
computer = random.randint(0, 2)
print(computer)
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('玩家获胜')
# 平局:玩家 == 电脑
elif player == computer:
print('平局')
else:
print('电脑获胜')
- if语句语法
if 条件:
条件成立执行的代码
- if…else…
if 条件:
条件成立执行的代码
else:
条件不成立执行的代码
- 多重判断
if 条件1:
条件1成立执行的代码
elif 条件2:
条件2成立执行的代码
else:
以上条件都不成立执行的代码
- if嵌套
if 条件1:
条件1成立执行的代码
if 条件2:
条件2成立执行的代码
....
三目运算符
条件成立的表达式 if 条件 else 条件不成立的表达式
a,b = 1, 2
c = a if a < b else b
print(c) #结果为a的值1
d = a if a > b else b
print(d) #结果为b的值2
运算符的分类
- 算数运算符
- 赋值运算符
- 复合赋值运算符
- 比较运算符
- 逻辑运算符
1. 算数运算符
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 | 1 + 1 输出结果为 2 |
- | 减 | 1-1 输出结果为 0 |
* | 乘 | 2 * 2 输出结果为 4 |
/ | 除 | 10 / 2 输出结果为 5 |
// | 整除 | 10 // 4 输出结果为2 |
% | 取余 | 10 % 4 输出结果为 2 |
** | 指数 | 2 ** 4 输出结果为 16,即 2 * 2 * 2 * 2 |
() | 小括号 | 小括号用来提高运算优先级,即 (1 + 2) * 3 输出结果为 9 |
注意:
- 混合运算优先级顺序:
()
高于**
高于*
/
//
%
高于+
-
2. 赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
= | 赋值 | 将= 右侧的结果赋值给等号左侧的变量 |
- 单个变量赋值
num = 1
print(num)
- 多个变量赋值
num1, float1, str1 = 10, 0.5, 'hello world'
print(num1)
print(float1)
print(str1)
- 多变量赋相同值
a = b = 10
print(a)
print(b)
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)
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
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 | 布尔"非":如果 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
5.1 拓展
数字之间的逻辑运算
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
总结
- 算数运算的优先级
- 混合运算优先级顺序:
()
高于**
高于*
/
//
%
高于+
-
- 混合运算优先级顺序:
- 赋值运算符
- =
- 复合赋值运算符
- +=
- -=
- 优先级
- 先算复合赋值运算符右侧的表达式
- 再算复合赋值运算的算数运算
- 最后算赋值运算
- 比较运算符
- 判断相等: ==
- 大于等于: >=
- 小于等于:<=
- 不等于: !=
- 逻辑运算符
- 与: and
- 或:or
- 非:not
循环(while与for)
while
while 条件:
条件满足时执行
条件改变
break:终止当前所在的循环
continue:退出当前循环进行下一次循环
如果在循环中使用了continue, 一 定 要 在 使 用 c o n t i n u e 改 变 循 环 的 条 件 \textcolor{red}{一定要在使用continue改变循环的条件} 一定要在使用continue改变循环的条件,否则会进入死循环
n = 1
while n <= 5:
if n == 3:
print("有虫子,这个不吃了")
n += 1
continue
print(f'第{n}个苹果')
n += 1
n = 1
while n <= 5:
if n == 3:
print("有虫子,这个不吃了")
n += 1 #在continue之前一定一定要有这个条件改变
continue
print(f'第{n}个苹果')
n += 1
while 循环嵌套
while 条件1:
条件1成立执行的代码
其他部分
while 条件2:
条件2成立执行的代码
其他部分
n = 1
while n <= 3:
j = 1 #内置循环结束后都要重新赋值
while j <= 3:
print("错了")
j += 1 #控制内层循环的条件
print("涮碗")
print("一套惩罚结束-------------")
n += 1 # 控制外层循环的条件
打印正方形星号
*****
*****
*****
*****
*****
n = 0
while n < 5:
j = 0
while j < 5: #把5换成n,就是打印三角形
print("*",end='')
j+=1
if n < 4: # 控制最后一行不打印回车
print()
n+=1
九九乘法表
i = 1
while i <= 9:
j = 1
while j <= i:
print(f'{j}*{i}={i*j}',end='\t')
j += 1
if i < 9: # 控制最后一行不打印回车
print()
i += 1
while…else…
while 条件:
条件成立执行打得的代码
else:
循环正常结束后执行的代码(如果break终止循环,则不执行该部分代码)
for循环
for 临时变量 in 范围
for…else…
for 条件:
条件成立执行打得的代码
else:
循环正常结束后执行的代码(如果break终止循环,则不执行该部分代码)
while…else…与for…else中的break和continue用法(以后者为例)
str1 = 'asdf'
for i in str1:
if i == 'd':
print('不打印g')
break
print(i)
else:
print('正常结束后执行的代码')
str1 = 'asdf'
for i in str1:
if i == 'd':
print('不打印g')
# break
continue
print(i)
else:
print('正常结束后执行的代码')
欢迎访问我的博客:Super 如有不足,欢迎指出,谢谢