• 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折
       整体结算后 输出小票: 包含(用户本次消费的金额,折扣金额,折扣率等 其他自己定义)

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

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

     安装python环境(python.exe) 用pycharm,idea ,cmd都可以运行

    1. # 4.1 声明变量
    2. apple_price = 3
    3. orange_price = 5
    4. real_price = 0
    5. discount_price = 0
    6. discount_rate = 0
    7. # 加一个会员卡信息(正常是数据库操作)
    8. vip_card_num = 2023010100001
    9. vip_discount_rate = 0.9
    10. # 4.2 接收控制台值
    11. print("欢迎来到pzy小店~~~")
    12. apple_buy_count = int(input("请输入购买的苹果斤数: \n"))
    13. orange_buy_count = int(input("请输入购买的橘子斤数: \n"))
    14. # 4.3 金额计算(接收字符串需要转换一下)
    15. sum_price = int(apple_price * apple_buy_count + orange_price * orange_buy_count)
    16. # 判断条件 总原价大于20 计算折扣价格
    17. if sum_price > 20:
    18. discount_rate = 0.9
    19. real_price = sum_price * discount_rate
    20. discount_price = sum_price - real_price
    21. # 判断条件 总原价大于50 计算折扣价格
    22. # elif sum_price > 50: # else if 的python写法 elif
    23. if sum_price > 50:
    24. discount_rate = 0.8
    25. # 如果超过50 并且有会员卡号 在原来基础上 再打9折
    26. if vip_card_num == int(input("请输入会员卡号: \n")):
    27. # 重新赋值给折扣率 折上折了
    28. discount_rate = discount_rate * vip_discount_rate
    29. real_price = sum_price * discount_rate
    30. else:
    31. print("未找到您的会员信息, 不能再次折扣!")
    32. real_price = sum_price * discount_rate
    33. discount_price = sum_price - real_price
    34. # 输出结果: 细节一 字符串换行与java不同 细节二 浮点类型 需要保留小数位数
    35. print(f"您好 您在超市购买清单如下: \n苹果: {apple_buy_count}斤, 橘子: {orange_buy_count}斤,\n"
    36. f"原价: %.2f元,\n实际支付: %.2f元, \n优惠金额: %.2f元, \n折扣是: %.2f折"
    37. % (sum_price, real_price, discount_price, discount_rate * 10))
    38. print("\n欢迎下次再来~~~")

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

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

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

    12. * 目的: 计算总价和折扣金额(注意 float并不适合金融类计算 如果出现精度丢失请忽略)
    13. *
    14. * @author pzy
    15. * @version 0.1.0
    16. * @description: TODO
    17. */
    18. public class Test05 {
    19. public static void main(String[] args) {
    20. //控制台输入
    21. Scanner scanner = new Scanner(System.in);
    22. // 4.1 声明变量
    23. int applePrice = 3;
    24. int orangePrice = 5;
    25. float realPrice = 0F;
    26. float discountPrice = 0F;
    27. float discountRate = 0F;
    28. // 加一个会员卡信息(正常是数据库操作)
    29. Long vipCardNum = 2023010100001L;
    30. float vipDiscountRate = 0.9F;
    31. // 4.2 接收控制台值
    32. System.out.println("欢迎来到pzy小店~~~");
    33. System.out.println("请输入购买的苹果斤数: ");
    34. int appleBuyCount = scanner.nextInt();
    35. System.out.println("请输入购买的橘子斤数: ");
    36. int orangeBuyCount = scanner.nextInt();
    37. // 4.3 金额计算(接收字符串需要转换一下)
    38. float sumPrice = applePrice * appleBuyCount + orangePrice * orangeBuyCount;
    39. // 判断条件 总原价大于20 计算折扣价格
    40. if (sumPrice > 20) {
    41. discountRate = 0.9F;
    42. realPrice = sumPrice * discountRate;
    43. discountPrice = sumPrice - realPrice;
    44. }
    45. // 判断条件 总原价大于50 计算折扣价格
    46. // elif sumPrice > 50: // else if 的python写法 elif
    47. if (sumPrice > 50) {
    48. discountRate = 0.8F;
    49. // 如果超过50 并且有会员卡号 在原来基础上 再打9折
    50. System.out.println("请输入会员卡号: ");
    51. if (vipCardNum == scanner.nextLong()) {
    52. // 重新赋值给折扣率 折上折了
    53. discountRate = discountRate * vipDiscountRate;
    54. realPrice = sumPrice * discountRate;
    55. } else {
    56. System.out.println("未找到您的会员信息, 不能再次折扣!");
    57. realPrice = sumPrice * discountRate;
    58. discountPrice = sumPrice - realPrice;
    59. }
    60. }
    61. // 输出结果: 细节一 字符串换行与java不同 细节二 浮点类型 需要保留小数位数
    62. System.out.printf("您好 您在超市购买清单如下: \n苹果: %s斤, 橘子: %s斤,\n" +
    63. "原价: %.2f元,\n实际支付: %.2f元, \n优惠金额: %.2f元, \n折扣是: %.2f折\n",
    64. appleBuyCount, orangeBuyCount, sumPrice, realPrice, discountPrice, discountRate * 10);
    65. System.out.println("欢迎下次再来~~~");
    66. }
    67. }

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

    循环

  • 相关阅读:
    输电线路分布式故障监测装置:准确定位故障点、辨识故障原因
    2023-10-23 LeetCode每日一题(老人的数目)
    SystemVerilog学习-06-类的封装
    Qt5开发从入门到精通——第九篇二节( Qt5 文件及磁盘处理—— 读写二进制文件)
    2104. 子数组范围和
    力扣:138. 随机链表的复制(Python3)
    Rabbitmq—— 从入门到放弃
    CDN,DNS,ADN,SCDN,DCDN,ECDN,PCDN,融合CDN的介绍
    如何在 pyqt 中实现全局事件总线
    Java多线程之:队列同步器AbstractQueuedSynchronizer原理剖析
  • 原文地址:https://blog.csdn.net/pingzhuyan/article/details/132228267