目录
1. 前言:
-> 上篇传送门: python入门篇02 python的语法基础
2. 案例: pzy超市的收银系统(控制台输入版)
-> 2.0 需求摘要:
-> 2.1 python代码答案: <直接可以运行>
-> 2.2 java代码答案: <必须有main方法>
2.3 两种代码运行的结果: (一样的结果)
---> 2.3.2 python运行结果(图示)
---> 2.3.3 java运行结果(图示)
3. 下篇传送
序号 | 基础说明 |
---|---|
1.1 | 变量声明, 注释声明,数据类型, 类型转换 |
1.2 | 关键字 数学运算符 赋值运算符 |
1.3 | 字符串定义(三种) 字符串拼接 格式化 浮点数四舍五入写法 |
1.4 | 控制台输入input()方法 随机数random, import导包 |
1.5 | 布尔类型 比较运算符 if逻辑判断 if elif else 使用 嵌套if使用 |
1.6 | 案例总结: 随便编了一个案例 包含上诉所有内容 |
-> 2.0 需求摘要:
请输入购买的苹果和橘子是多少斤
已知苹果三块钱一斤,橘子五块钱一斤,
现在有活动一: 总价超过20打九折 大于等于50打八折,
最新推广活动: 办理会员卡 超过50的折上折 (9折) 也就是 超过50的先打8折 然后再打9折
整体结算后 输出小票: 包含(用户本次消费的金额,折扣金额,折扣率等 其他自己定义)
"""
4. 案例---> pzy超市的收银系统(控制台输入版)
* 随便编的
* (大家看看跟java和区别)个人感觉 没有java强类型那么舒服呢
* 需求: 请输入购买的苹果和橘子是多少斤
已知苹果三块钱一斤,橘子五块钱一斤,
现在有活动一: 总价超过20打九折 大于等于50打八折,
最新推广活动: 办理会员卡 超过50的折上折 (9折) 也就是 超过50的先打8折 然后再打9折
整体结算后 输出小票: 包含(用户本次消费的金额,折扣金额,折扣率等 其他自己定义)
目的: 计算总价和折扣金额(注意 float并不适合金融类计算 如果出现精度丢失请忽略)
"""
安装python环境(python.exe) 用pycharm,idea ,cmd都可以运行
# 4.1 声明变量
apple_price = 3
orange_price = 5
real_price = 0
discount_price = 0
discount_rate = 0
# 加一个会员卡信息(正常是数据库操作)
vip_card_num = 2023010100001
vip_discount_rate = 0.9
# 4.2 接收控制台值
print("欢迎来到pzy小店~~~")
apple_buy_count = int(input("请输入购买的苹果斤数: \n"))
orange_buy_count = int(input("请输入购买的橘子斤数: \n"))
# 4.3 金额计算(接收字符串需要转换一下)
sum_price = int(apple_price * apple_buy_count + orange_price * orange_buy_count)
# 判断条件 总原价大于20 计算折扣价格
if sum_price > 20:
discount_rate = 0.9
real_price = sum_price * discount_rate
discount_price = sum_price - real_price
# 判断条件 总原价大于50 计算折扣价格
# elif sum_price > 50: # else if 的python写法 elif
if sum_price > 50:
discount_rate = 0.8
# 如果超过50 并且有会员卡号 在原来基础上 再打9折
if vip_card_num == int(input("请输入会员卡号: \n")):
# 重新赋值给折扣率 折上折了
discount_rate = discount_rate * vip_discount_rate
real_price = sum_price * discount_rate
else:
print("未找到您的会员信息, 不能再次折扣!")
real_price = sum_price * discount_rate
discount_price = sum_price - real_price
# 输出结果: 细节一 字符串换行与java不同 细节二 浮点类型 需要保留小数位数
print(f"您好 您在超市购买清单如下: \n苹果: {apple_buy_count}斤, 橘子: {orange_buy_count}斤,\n"
f"原价: %.2f元,\n实际支付: %.2f元, \n优惠金额: %.2f元, \n折扣是: %.2f折"
% (sum_price, real_price, discount_price, discount_rate * 10))
print("\n欢迎下次再来~~~")
有java环境 jdk (java.exe) 用idea cmd都可以 但是需要编译成.class文件后才能运行
import java.util.Scanner;
/**
* 4. 案例---> pzy超市的收银系统(控制台输入版)
* * 随便编的
* * (大家看看跟java和区别)个人感觉 没有java强类型那么舒服呢
* * 需求: 请输入购买的苹果和橘子是多少斤
* 已知苹果三块钱一斤,橘子五块钱一斤,
* 现在有活动一: 总价超过20打九折 大于等于50打八折,
* 最新推广活动: 办理会员卡 超过50的折上折 (9折) 也就是 超过50的先打8折 然后再打9折
* 整体结算后 输出小票: 包含(用户本次消费的金额,折扣金额,折扣率等 其他自己定义)
*
* 目的: 计算总价和折扣金额(注意 float并不适合金融类计算 如果出现精度丢失请忽略)
*
* @author pzy
* @version 0.1.0
* @description: TODO
*/
public class Test05 {
public static void main(String[] args) {
//控制台输入
Scanner scanner = new Scanner(System.in);
// 4.1 声明变量
int applePrice = 3;
int orangePrice = 5;
float realPrice = 0F;
float discountPrice = 0F;
float discountRate = 0F;
// 加一个会员卡信息(正常是数据库操作)
Long vipCardNum = 2023010100001L;
float vipDiscountRate = 0.9F;
// 4.2 接收控制台值
System.out.println("欢迎来到pzy小店~~~");
System.out.println("请输入购买的苹果斤数: ");
int appleBuyCount = scanner.nextInt();
System.out.println("请输入购买的橘子斤数: ");
int orangeBuyCount = scanner.nextInt();
// 4.3 金额计算(接收字符串需要转换一下)
float sumPrice = applePrice * appleBuyCount + orangePrice * orangeBuyCount;
// 判断条件 总原价大于20 计算折扣价格
if (sumPrice > 20) {
discountRate = 0.9F;
realPrice = sumPrice * discountRate;
discountPrice = sumPrice - realPrice;
}
// 判断条件 总原价大于50 计算折扣价格
// elif sumPrice > 50: // else if 的python写法 elif
if (sumPrice > 50) {
discountRate = 0.8F;
// 如果超过50 并且有会员卡号 在原来基础上 再打9折
System.out.println("请输入会员卡号: ");
if (vipCardNum == scanner.nextLong()) {
// 重新赋值给折扣率 折上折了
discountRate = discountRate * vipDiscountRate;
realPrice = sumPrice * discountRate;
} else {
System.out.println("未找到您的会员信息, 不能再次折扣!");
realPrice = sumPrice * discountRate;
discountPrice = sumPrice - realPrice;
}
}
// 输出结果: 细节一 字符串换行与java不同 细节二 浮点类型 需要保留小数位数
System.out.printf("您好 您在超市购买清单如下: \n苹果: %s斤, 橘子: %s斤,\n" +
"原价: %.2f元,\n实际支付: %.2f元, \n优惠金额: %.2f元, \n折扣是: %.2f折\n",
appleBuyCount, orangeBuyCount, sumPrice, realPrice, discountPrice, discountRate * 10);
System.out.println("欢迎下次再来~~~");
}
}
---> 2.3.1 总运行结果(文字)
欢迎来到pzy小店~~~
请输入购买的苹果斤数:
1
请输入购买的橘子斤数:
10
请输入会员卡号:
2023010100001
您好 您在超市购买清单如下:
苹果: 1斤, 橘子: 10斤,
原价: 53.00元,
实际支付: 38.16元,
优惠金额: 14.84元,
折扣是: 7.20折欢迎下次再来~~~
java的可读性更强 一板一眼的
而python 更简洁 但由于类型是自动判断, 有时候需要转换一下
就是上面一个小案例 就用到了很多java基础知识
访问控制修饰符public
静态修饰符static
无返回值void
数组 string[] args
类class
包package
导包 import 以及
对象Scanner 控制台输入
8种基本类型中的四种(int long float boolean)
一种引用类型String 几相关操作
三种数据类型
一个方法input() 则直接可以控制台输入
字符串相关操作
相比之下 java上面的小案例 涉及到了java很多基础, 然而大部分在这案例里都没用上
循环