字符串格式化
# 字符串格式化输出
# 1. print 可以一次输出多个变量
name = input("请输入您的名字")
age = input("请输入您的年龄")
# print(type(age))
addr = input("请输入您的地址")
# 输出以上信息, 并且计算此人20年后多少岁
print('姓名 :', name, '年龄 :', age, '地址 :', addr, '20年后', int(age)+20, '岁') #
# print(v1, v2) 之间默认有一个空格
print('姓名 :', name, '年龄 :', age, '地址 :', addr, '20年后', int(age)+20, '岁',sep='') #
# 2. %s 格式化(类似c语言) %s 代表str %d int %f float .2 保留2位小数
# " %s"%(v1, v2...)
print('--'*20)
print('姓名 :%s, 年龄 :%d, 地址 :%s, 20年后%.2f岁'%(name, int(age), addr, float(int(age)+20) )) #
print('--'*20)
# 3. format格式化 (推荐)
# "{} ".format(v1, v2, v3)
print('姓名 :{}, 年龄 :{}, 地址 :{}, 20年后{}岁'.format(name, int(age), addr, float(int(age)+20)))
print('姓名 :{3}, 年龄 :{0}, 地址 :{1}, 20年后{2}岁'.format(int(age), addr, float(int(age)+20), name))
# 4. f 字符串格式化 (推荐)
print(f'姓名 :{name}, 年龄 :{int(age)}, 地址 :{addr}, 20年后{float(int(age)+20)}岁')
运算符的分类
- 算数运算符
- 赋值运算符
- 复合赋值运算符
- 比较运算符
- 逻辑运算符
1. 算数运算符
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 | 1 + 1 输出结果为 2 |
- | 减 | 1-1 输出结果为 0 |
* | 乘 | 2 * 2 输出结果为 4 |
/ | 除 | 10 / 2 输出结果为 5 |
// | 整除 | 9 // 4 输出结果为2 |
% | 取余 | 9 % 4 输出结果为 1 |
** | 指数 | 2 ** 4 输出结果为 16,即 2 * 2 * 2 * 2 |
() | 小括号 | 小括号用来提高运算优先级,即 (1 + 2) * 3 输出结果为 9 |
# 算数运算符
a = 10
b = 4
print(a/b)
print(a//b) # 整除
print(a%b) # 取余数
print(a**b) # 幂运算
print(16**0.5) #
print((1 + 4)**2)
2 .赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
= | 赋值 | 将= 右侧的结果赋值给等号左侧的变量 |
+= | 加法赋值运算符 | 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 |
# 赋值运算符
c = a
print(f'c = {c}')
c += 10
# c = c + 10
print(f'c = {c}')
num = 89757
print(f'个位 = {num%10}')
num //= 10
print(f'十位 = {num%10}')
num //= 10
print(f'百位 = {num%10}')
num //= 10
print(f'千位 = {num%10}')
num //= 10
print(f'万位 = {num%10}')
3. 比较运算符
比较运算符也叫关系运算符, 通常用来判断。
运算符 | 描述 | 实例 |
---|---|---|
== | 判断相等。如果两个操作数的结果相等,则条件结果为真(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 |
# 比较运算符
sal1, sal2 = 1000, 2000
print(sal1 == sal2) # False
print(sal1 != sal2) # True
print(sal1 >= sal2) # False
print(sal1 <= sal2) # True
print(sal1 > sal2) # False
print(sal1 < sal2) # True
4. 逻辑运算符
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
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 |
# 逻辑运算
age1 = 19
isCard1 = False # 是否有驾照
money1 = 300000
# 比如是否能买宝马, 价格是20万
age = age1
isCard = isCard1
money = money1
# 逻辑与 and
isCard = True
result1 = age > 18 and isCard and money >= 200000
print(f'第一个人是否可以买车{result1}')
# 逻辑或 or
isCard = False
age = 6
money = 78
result2 = age > 18 or isCard or money >= 200000
print(f'第二个人是否可以买车{result2}')
# 逻辑非 not
print(isCard)
print(not isCard)
- 算数运算的优先级
- 混合运算优先级顺序:
()
高于**
高于*
/
//
%
高于+
-
- 混合运算优先级顺序:
- 复合赋值运算符优先级
- 先算复合赋值运算符右侧的表达式
- 再算复合赋值运算的算数运算
- 最后算赋值运算
标识符和关键字
关键字: 关键字 就是在 Python 内部已经使用的标识符
关键字 具有特殊的功能和含义
True False 等
import keyword
print(keyword.kwlist)
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
标识符就是程序员自己命名的 变量名。 名字 需要有 见名知义 的效果,不要随意起名。
- 标示符可以由 字母、下划线 和 数字 组成
- 不能以数字开头
- 不能与关键字重名
变量命名风格
下划线风格
stu_name = “张三”
大驼峰
StudentName
小驼峰 第一个单词首字母小写,剩余首字母大写
studentNameInfo
程序执行结构
- 顺序结构
- 分支结构
- 循环结构
分支结构(条件语句)
if elif else 语句
格式
# 条件判断的结果是布尔值, True代表满足条件 False代表不满足条件
if 条件判断1:
满足条件1要执行的事情
# if 可以单独存在
elif 条件判断2:
满足条件2要执行的事情
elif 条件判断3:
满足条件3要执行的事情
...
else:
上面条件都不满足时要执行的事情
# 注意
elif 必须结合if 不能单独存在
else 必须结合if 不能单独存在
age = int(input("请输入您的年龄"))
money = int(input("请输入您的余额"))
if age >= 18 and age<= 150 and money >= 3:
print("恭喜您成年了, 可以去网吧")
elif age < 18 and age >=0 and money > 0.5:
print("对不起, 你还是个宝宝, 买包辣条吧")
else:
print("你不应该在这个世界")
猜拳游戏
剪刀、石头、布又称“猜丁壳", 设计猜拳游戏, 玩家出拳, 然后此时电脑也出拳, 判断哪个玩家获胜
# 猜拳游戏
from random import randint
computer = randint(1, 3) # 生成[1, 3]之间的随机整数
# print(computer)
player = int(input('请出拳 ⽯头(1)剪⼑(2)布(3)'))
if (player==1 and computer==2) or (player==2 and computer==3) or (player==3 and computer==1):
print("玩家胜利!!")
elif player==computer:
print("平局!")
else:
print("你真菜, 我赢了!")
水仙花数
水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。编写程序判断一个数是不是水仙花数(假设默认用户输入的是合法三位数)
num = int(input('请输入一个三位数'))
temp = num
ge = num%10
num//=10
shi = num%10
num//=10
bai = num%10
if (ge**3 + shi**3 + bai**3) == temp:
print("是水仙花数")
else:
print("不是水仙花数")
循环
请思考: 找到所有水仙花数?
while 循环
语法
while 条件:
循环体
i = 1
while i<=10:
print(i)
i+=1 # 不要忘记每次维护进行自增
计算 1 ~100 的累加和
i = 1
sums = 0 # 袋子 存储累加和
while i<=100:
# print(i)
sums += i;
i+=1 # 不要忘记每次维护进行自增
print(f"sums = {sums}")
作业
BMI计算器
计算公式为:BMI=体重÷身高^2。(体重单位:千克;身高单位:米。)