1.股价计算小程序
stock_code = 003032
- 错误1:定义整数变量不能用0去占位(整数不能以0开头),这里要用字符串的定义方式
print("每日增长系数是:%s,经过%s的增长后,股价达到了%s" % (stock_price_daily_growth_factor,growth_days,stock_price * stock_price_daily_growth_factor ** growth_days))
- 错误2:字符串占位格式化,当后面有多个变量时,每个变量后面的逗号还要加空格
"""
股价计算小程序
"""
name = "传智播客" # 公司名
stock_price = 19.99 # 当前股价
stock_code = "003032" # 股票代码
stock_price_daily_growth_factor = 1.2 # 股票每日增长系数
growth_days = 7 # 增长天数
print(f"公司:{name},股票代码:{stock_code},当前股价:{stock_price}")
print("每日增长系数是:%s,经过%d天的增长后,股价达到了%.2f" % (stock_price_daily_growth_factor, growth_days, stock_price * stock_price_daily_growth_factor ** growth_days))
- 完整代码
name = "传智播客"
stock_price = 19.99
stock_code = "003032"
stock_price_daily_growth_factor = 1.2
growth_days = 7
finally_stock_price = stock_price * stock_price_daily_growth_factor ** growth_days
print(f"公司:{name},股票代码:{stock_code},当前股价:{stock_price}")
print("每日增长系数是:%.1f,经过%d天的增长后,股价达到了%.2f" % (stock_price_daily_growth_factor, growth_days, finally_stock_price))
- 优化
2.成年人判断练习题
"""
成年人判断
"""
print("欢迎来到黑马儿童游乐场,儿童免费,成人收费。")
age = input()
print("请输入你的年龄:%d" % int(age))
if age > 18:
print("30,游玩需要补票10元。")
print("祝您游玩愉快。")
- 报错:TypeError: ‘>’ not supported between instances of ‘str’ and ‘int’
- 在print语句中输出的age确实被转化成数字类型,但if语句里比较的还是字符串类型的age
- 不属于if语句内,最好和if语句空一行
# 获取键盘输入
print("欢迎来到黑马儿童游乐场,儿童免费,成人收费。")
age = int(input("请输入你的年龄:"))
# 通过if判断是否是成年人
if age >= 18:
print("您已成年,游玩需要补票10元。")
print("祝您游玩愉快。")
- 优化
3.判断语句的嵌套
公司要发礼物,条件是:
1.必须是大于等于18岁小于30岁的成年人
2. 同时入职时间需满足大于两年,或者级别大于3才领取
age = int(input("请输入你的年龄:"))
work_time = int(input("请输入你的入职时间:"))
work_degree = int(input("请输入你的级别;"))
if age >= 18:
if age < 30:
if work_time >= 2:
print("恭喜你可以领取一份礼物!")
else:
print("不好意思,您的入职时间不满足要求。")
if work_degree > 3:
print("恭喜你可以领取一份礼物!")
else:
print("不好意思,您的级别不满足要求。")
else:
print("不好意思,您的年龄不满足要求。")
else:
print("不好意思,您的年龄不满足要求。")
- 我的过程
数据测试:
请输入你的年龄:18
请输入你的入职时间:1
请输入你的级别;4
不好意思,您的入职时间不满足要求。
恭喜你可以领取一份礼物!
- 存在问题:入职时间不满足要求,结果却能领取礼物
- 解决问题:遇到“或者”的情况,用elif
age = 17
year = 2
level = 4
if age >= 18:
print("你是成年人。")
if age < 30:
print("你的年龄达标了。")
if year > 2:
print("恭喜你,年龄和入职时间都达标,可以领取礼物。")
elif level > 3:
print("恭喜你,年龄和级别都达标,可以领取礼物。")
else:
print("不好意思,尽管年龄达标,但是入职时间和级别都不达标。")
else:
print("不好意思,年龄太大了。")
else:
print("小朋友不可以领取。")
- 优化
- 通过改变age、year、level的值去测试数据
4.终极猜数字
import random
num = random.randint(1, 10)
if int(input("请输入你第一次猜测的数字:")) == num:
print("恭喜你,第一次猜对了!")
# 这里出现问题:elif中的数字已经不是第一次猜测的数字了
elif int(input("请输入你第一次猜测的数字:")) > num:
print("你猜的数大了哦~")
if int(input("请输入你第二次猜测的数字:")) == num:
print("恭喜你,第二次猜对了!")
else:
print("你猜的数小了哦~")
- 问题解决:利用变量去接收
import random
num = random.randint(1, 10)
print(num)
num1 = int(input("请输入你第一次猜测的数字:"))
if num1 == num:
print("恭喜你,第一次猜对了!")
elif num1 > num:
print("你猜的数大了哦~")
# 比如说数猜大了,那就进行第二次猜测,同时数猜小了,也要进行第二次猜测,但是代码又是一样的
num2 = int(input("请输入你第二次猜测的数字:"))
if num2 == num:
print("恭喜你,第二次猜对了!")
elif num2 > num:
print("你第二次猜的数大了哦~")
num3 = int(input("请输入你第三次猜测的数字:"))
if num3 == num:
print("恭喜你,第三次猜对了!")
elif num3 > num:
print("你第三次猜的数大了哦~机会已用完")
else:
print("你第三次猜的小了哦~机会已用完")
else:
print("你第二次猜的小了哦")
num3 = int(input("请输入你第三次猜测的数字:"))
if num3 == num:
print("恭喜你,第三次猜对了!")
elif num3 > num:
print("你第三次猜的数大了哦~机会已用完")
else:
print("你第三次猜的小了哦~机会已用完")
else:
print("你猜的数小了哦~")
num2 = int(input("请输入你第二次猜测的数字:"))
if num2 == num:
print("恭喜你,第二次猜对了!")
elif num2 > num:
print("你第二次猜的数大了哦~")
num3 = int(input("请输入你第三次猜测的数字:"))
if num3 == num:
print("恭喜你,第三次猜对了!")
elif num3 > num:
print("你第三次猜的数大了哦~机会已用完")
else:
print("你第三次猜的小了哦~机会已用完")
else:
print("你第二次猜的小了哦")
num3 = int(input("请输入你第三次猜测的数字:"))
if num3 == num:
print("恭喜你,第三次猜对了!")
elif num3 > num:
print("你第三次猜的数大了哦~机会已用完")
else:
print("你第三次猜的小了哦~机会已用完")
- 虽然满足题目要求,但是代码也太冗余了
# 1.构建一个随机的数字变量
import random
num = random.randint(1, 10)
guess_num = int(input("输入你要猜的数字:"))
# 2.通过if判断语句进行数字的猜测
if guess_num == num:
print("恭喜,第一次就猜中了")
else:
if guess_num > num:
print("你猜测的数字大了")
else:
print("你猜测的数字小了")
guess_num = int(input("再次输入你要猜的数字:"))
if guess_num == num:
print("恭喜,第二次猜中了")
else:
if guess_num > num:
print("你第二次猜测的数字大了")
else:
print("你第二次猜测的数字小了")
guess_num = int(input("第三次输入你要猜的数字:"))
if guess_num == num:
print("恭喜,第三次猜中了")
else:
print("对不起,三次机会已用完")
- 优化
5.while循环猜数字
"""
演示while循环的基础案例-猜数字
"""
import random
num = random.randint(1, 100)
print(num)
i = 0
flag = True
# flag本身就是布尔变量,不需要再去判断
while flag == True:
guess_num = int(input("猜测数字:"))
i += 1
if guess_num == num:
flag = False
print("恭喜你第%d次猜对了:" % i)
else:
print("对不起你猜错了")
- 未实现猜不中提示大了或小了
# 获取范围在1-100的随机数字
import random
num = random.randint(1, 100)
print(num)
# 定义一个变量,记录总共猜测了多少次
count = 0
# 通过一个布尔类型的变量,做循环是否继续的标记
flag = True
while flag:
guess_num = int(input("输入猜测数字:"))
count += 1
if guess_num == num:
print("恭喜你猜中了")
flag = False
else:
if guess_num > num:
print("你猜大了")
else:
print("你猜小了")
print(f"你总共猜了{count}次")
- 优化
6.九九乘法表
"""
演示使用while的嵌套循环
打印输出九九乘法表
"""
"""
- 补充知识1:print输出不换行
# 在print语句中,加上end = ''即可输出不换行了
print("Hello", end = '')
print("World", end = '')
- 补充知识2:制表符\t
# 它可以让我们的多行字符串进行对齐
print("Hello world")
print("itheima best")
print("Hello \tWorld")
print("itheima \tbest")
"""
"""
分析:
- 外层循环:i <= 9
- 内层循环:j <= i
"""
i = 1
while i <= 9:
j = 1
while j <= i:
print(f"{j}*{i}={i*j}\t", end= '')
j += 1
print()
i += 1