python入门篇03 基础案例 python版与java版 语法不同之处

目录

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. 前言: 

  -> 上篇传送门: python入门篇02 python的语法基础

序号 基础说明
1.1 变量声明, 注释声明,数据类型, 类型转换
1.2 关键字 数学运算符 赋值运算符
1.3 字符串定义(三种) 字符串拼接 格式化 浮点数四舍五入写法
1.4 控制台输入input()方法  随机数random, import导包
1.5 布尔类型 比较运算符 if逻辑判断 if elif else 使用 嵌套if使用
1.6 案例总结: 随便编了一个案例 包含上诉所有内容

2. 案例: pzy超市的收银系统(控制台输入版)

-> 2.0 需求摘要:

请输入购买的苹果和橘子是多少斤
   已知苹果三块钱一斤,橘子五块钱一斤,
   现在有活动一: 总价超过20打九折 大于等于50打八折,
   最新推广活动: 办理会员卡 超过50的折上折 (9折) 也就是 超过50的先打8折 然后再打9折
   整体结算后 输出小票: 包含(用户本次消费的金额,折扣金额,折扣率等 其他自己定义)

"""
4. 案例---> pzy超市的收银系统(控制台输入版)<python版>
* 随便编的
* (大家看看跟java和区别)个人感觉 没有java强类型那么舒服呢  
 
   
* 需求: 请输入购买的苹果和橘子是多少斤
   已知苹果三块钱一斤,橘子五块钱一斤,
   现在有活动一: 总价超过20打九折 大于等于50打八折,
   最新推广活动: 办理会员卡 超过50的折上折 (9折) 也就是 超过50的先打8折 然后再打9折
   整体结算后 输出小票: 包含(用户本次消费的金额,折扣金额,折扣率等 其他自己定义)
   
目的: 计算总价和折扣金额(注意 float并不适合金融类计算 如果出现精度丢失请忽略)
"""

-> 2.1 python代码答案:  <直接可以运行>

 安装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欢迎下次再来~~~")

-> 2.2 java代码答案: <必须有main方法>

有java环境 jdk (java.exe) 用idea cmd都可以 但是需要编译成.class文件后才能运行

import java.util.Scanner;

/**
 * 4. 案例---> pzy超市的收银系统(控制台输入版)<java版>
 * * 随便编的
 * * (大家看看跟java和区别)个人感觉 没有java强类型那么舒服呢
 * * 需求: 请输入购买的苹果和橘子是多少斤
 * 已知苹果三块钱一斤,橘子五块钱一斤,
 * 现在有活动一: 总价超过20打九折 大于等于50打八折,
 * 最新推广活动: 办理会员卡 超过50的折上折 (9折) 也就是 超过50的先打8折 然后再打9折
 * 整体结算后 输出小票: 包含(用户本次消费的金额,折扣金额,折扣率等 其他自己定义)
 * <p>
 * 目的: 计算总价和折扣金额(注意 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 两种代码运行的结果: (一样的结果)

---> 2.3.1 总运行结果(文字) 

欢迎来到pzy小店~~~
请输入购买的苹果斤数: 
1
请输入购买的橘子斤数: 
10
请输入会员卡号: 
2023010100001
您好 您在超市购买清单如下: 
苹果: 1斤, 橘子: 10斤,
原价: 53.00元,
实际支付: 38.16元, 
优惠金额: 14.84元, 
折扣是: 7.20折

欢迎下次再来~~~

---> 2.3.2 python运行结果(图示)

 

 ---> 2.3.3 java运行结果(图示)

2.4 总结

---> 2.4.1 整体代码观感上

java的可读性更强 一板一眼的 

而python 更简洁 但由于类型是自动判断, 有时候需要转换一下

--->2.4.2 语法复杂度

>>>java的语法写法也是比较复杂的

就是上面一个小案例 就用到了很多java基础知识

访问控制修饰符public

静态修饰符static 

无返回值void 

数组 string[] args 

类class 

包package 

导包 import 以及

对象Scanner 控制台输入

8种基本类型中的四种(int long float boolean)

一种引用类型String 几相关操作

>>> python的写法对新手更加友好

三种数据类型

一个方法input() 则直接可以控制台输入

字符串相关操作

 相比之下 java上面的小案例 涉及到了java很多基础, 然而大部分在这案例里都没用上


 3. 下篇传送

循环

猜你喜欢

转载自blog.csdn.net/pingzhuyan/article/details/132228267