" 人类是易于厌倦的生物、悲伤也好、喜悦也罢、都无法一直持续下去 "
Python基础(内容基于逻辑教育Cheney课程)
这篇文章将带我们了解到:
- 运算符的优先级情况
- 条件控制语句
1、运算符的优先级(此处不详细说明)
一、数学里面的加减乘除及括号
- 括号优先、乘除其次、加减最后
a = 7 + 3 * 4
print(a)
输出: 19
a = (7 + 3) * 4
print(a)
输出: 40
二、Python里面的 and 和 or
- and 的优先级高于 or
a = 0 and 2 or 3
print(a)
输出:3
2、条件控制语句
通常会有某种限制条件、来进行程序的执行
2.1、if 语句
一、执行流程
- 先对条件表达式进行求值判断
- 如果为True、则执行if后的语句
- 如果为False、则不执行
二、语法
- if 条件表达式:
- 代码块
- 代码块中保存着一组代码、同一个代码块中的代码、要么都执行要么都不执行
- 代码块以缩进开始、直到代码恢复到之前的缩进级别时结束
- 代码块就是一种为代码分组的机制
2.2、input()函数
一、定义:该函数用来获取用户的输入、调用后、程序会立即暂停、等待用户输入、用户输入完成后、回车后程序才会继续往下执行(具有阻塞程序的作用、不输入、程序将永远不会继续往下执行)
二、input()函数及 print()函数
- input函数会将输入的数据转换为字符(串)形式
- 也就是将 123 转换为 " 123 "
- print函数输出时会自动将字符串类型的双引号(单引号)去掉
a = input("请输入数据:")
# 输入123
print(type(a))
print(a)
输出:
<class "str">
123
三、eval()函数
- 将被input接收的字符(串)类型的引号去掉
- 也就是将 " 123 " 转换为 123
a = eval(input("请输入数据:"))
# 输入123
print(type(a))
print(a)
输出:
<class "int">
123
四、格式转换
- int()将整型的字符串强制转换为int类型本身
- 也就是说将 " 1 " 转换为 1
- float()将浮点型或整型的字符串强制转换为float类型本身
- 也就是说将 " 1 " 转换为 1.0 、 将 " 1.1 " 转换为1.1
a = float(input("请输入数据:"))
# 输入123
# 输入12.2
print(type(a))
print(a)
输出:
<class "int">
123
<class "float">
1.2
2.3、if-else语句
一、语法
- if 条件表达式:
- 代码块
- else:
- 代码块
二、执行流程(特点:if 或 else 后的语句必有一个执行)
- if - else 语句在执行时、先对 if 后的条件表达式进行求值判断
- 如果为True、则执行if后的代码块
- 如果为False、则执行else后的代码块
三、举例
- a == 1 则执行 print(a) 、否则执行 print(" 123 ")
a = 1
if a == 1:
print(a)
else:
print("123")
输出: 1
- 下列为二个不完整但独立的 if - else 语句
a = 1
if a == 1:
print("1")
if a == 1:
print("2")
输出: 1
2
2.4、if-elif-else语句
一、语法
- if 条件表达式:
- 代码块
- elif 条件表达式:
- 代码块
- …
- else:
- 代码块
二、执行流程
- 此语句在执行时、会自上向下依次对条件表达式进行求值判断
- 如果表达式的结果为True、则执行当前代码块、然后语句结束
- 如果表达式的结果为False、则继续向下判断、直到找到True为止
- 如果所有的表达式都是False、则执行else后的代码块
三、举例
- 实质上为 if - else 语句的嵌套
value = 30000
if value >= 30000:
print('有钱任性')
elif value >= 20000:
print('有钱真好')
elif value >= 10000:
print('哥也⽉薪上万了')
elif value >= 5000:
print('⼯资还说的过去')
elif value >= 2000:
print('能养活自己了')
输出: 有钱任性
2.5、while语句
一、定义:循环语句可以使指定的代码块重复指定的次数
二、语法
- while 条件表达式 :
- 代码块
- else:
- 代码块
三、举例
- 计算 0 到 100 偶数和
a = 0
i = 0
while i <= 100:
a += i
i += 2
print(a)
输出: 2550
- 输出每行依次递增的星星
i = 1
a = "*"
while i < 5:
print(a)
a += "*"
i += 1
输出:
*
**
***
****
*****
i = 0
while i < 5:
j = 0
while j <= 4-i:
print("*",end= "")
j += 1
print()
i += 1
输出:
*****
****
***
**
*
四、while 语句完整性的结构
i = 0
while i < 5:
print(i)
else:
print("while循环正常结束")
2.6、break语句和continue语句
定义:break 可以用来立即退出循环语句和else语句 、continue 用来跳过当次循环
一、continue 语句
- 跳过 while 中 continue 后面的语句
- 下列即是跳过 print(i)
i = 0
while i < 5:
i += 1
if i == 3:
continue
print(i)
else:
print("while循环正常结束")
输出:
1
2
4
5
while循环正常结束
二、break 语句
- 直接跳过 while 语句及 else 语句结束循环
i = 0
while i < 5:
i += 1
if i == 3:
break
print(i)
else:
print("while循环正常结束")
输出:
1
2
3、程序举例
一、求1000以内的所有水仙花数
i = 100
while i < 1000:
a = a // 100 #百位
b = (i - a * 100) // 10 #十位
c = a % 10 #个位
if a ** 3 + b ** 3 + c ** 3 == a:
print(a)
i += 1
输出:
153
370
371
407
二、获取用户输入的任意数、判断其是否为质数
num = int(input("请输入整数:"))
i = 2
while i < num:
if num % i == 0
print("不是质数")
break
i += 1
else:
print("是质数")
三、猜拳游戏
- 规则
- 0 是石头
- 1 是剪刀
- 2 是布
- 出拳
- 玩家:手动输入
- 电脑:随机输入
- 判断输赢
- 玩家获胜
- 电脑获胜
- 平局
import random
player = int(input("请输入0、1、2三个数中间的一个:"))
computer = random.randint(0,2)
print(computer)
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("电脑获胜")
四、打印九九乘法表
i = 0
while i < 9:
i += 1
j = 0
while j < i:
j += 1
print(f"{i}*{j}={i*j}",end =" ")
print()