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. 下篇传送

循环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pingzhuyan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值