python入门篇02- 注释,变量,数据类型,运算符及条件控制语句

目录

  • 1. 前言:
  • 2. python基础使用
    • -> 2.1 注释的使用
      • ---> 2.1.1 单行注释
        • 示例:
      • ---> 2.1.2 多行注释
    • -> 2.2 变量
      • ---> 2.2.1 整数类型/浮点类型/字符串类型
      • ---> 2.2.2 变量的简单使用
      • ---> 2.2.3 查看类型与类型转换
      • ---> 2.2.4 变量命名语法规则
      • --->2.2.5 数学(算术)运算符
        • =>代码如下
        • =>结果如下
    • -> 2.3 字符串相关操作
      • ---> 2.3.1 字符串定义的三种操作
      • ---> 2.3.2 字符串拼接
        • ps: 特殊情况(报错原因)
      • ---> 2.3.3 字符串格式化
        • 方法一: 使用%s占位符号
        • 方法二: 快速格式化方式 f 与{任意类型} 组合
      • ---> 2.3.4 字符串格式化-数字精度控制 `%m.nf`
      • --->2.3.5 浮点数四舍五入的问题
        • -> 丢失精度问题( python写法)
        • -> 丢失精度问题(java写法)
        • ->丢失精度解释:
    • -> 2.4 控制台输入 input()方法
      • ---> 2.4.1 控制台输入方式一:
      • ---> 2.4.2 控制台输入方式二:
    • ->2.5 布尔类型和运算
      • ---> 2.5.1 定义布尔变量
      • ---> 2.5.2 比较运算符使用
        • 代码如下:
    • -> 2.6 if else elif 条件使用方式
      • ---> 2.6.1 if 语句使用
      • ---> 2.6.2 if else条件使用
      • ---> 2.6.3 if elif else 条件使用
    • -> 2.7 随机数方法 random.randint(a,b)
  • 3. 前面语法的总结案例
    • -> 3.1 超市的收银系统(控制台版)
    • -> 3.2 python专栏地址


本文正式使用markdown编辑器编写

1. 前言:

===> 传送门: python基础环境配置

2. python基础使用

-> 2.1 注释的使用

—> 2.1.1 单行注释

使用#表示 注意空格 不然会有警告

示例:

 # 我是单行注释
print("helloword")
print("helloword")

—> 2.1.2 多行注释

使用"“” 表示

"""python入门01我是多行注释
"""

-> 2.2 变量

—> 2.2.1 整数类型/浮点类型/字符串类型

# 整数类型
666
# 浮点数字类型
13.14
# 字符串类型
"张三峰"

—> 2.2.2 变量的简单使用

定义变量 随便写名 不用像java声明类型

# 
money = 666
apple = 10
print("钱是多少: -> ", 666)# 正常计算
print("剩余余额: ", money - apple, "元")

—> 2.2.3 查看类型与类型转换

查看类型方式 type(变量)
类型转换方式: str(),float(),int()

# 类型转换 (执行效果跟java类似 除了语法略有不同
"""int float str 相互转换"""
num = 123
str1 = "张三"
print(type(num))
# 转换string
print(type(str(num)))
# 转换float
print(type(float(num)))
# 转换int
print(type(int(num)))

测试报错
ValueError: invalid literal for int() with base 10: ‘张三’ `
print(type(int(str1)))

—> 2.2.4 变量命名语法规则

  1. 变量名大小写敏感,区分命名
  2. 只能字母、下划线开头,不能数字开头。
  3. 变量名不能有空格,可以用下划线
  4. python关键字,函数不能用
  5. 变量名见名知意 下划线命名 中英数字下划线
# 语法规则
# 1_a= 0
a_1 = 0
_a = 0# 变量名大小写敏感
apple = 1
Apple = 2
print(apple)
print(Apple)# 关键字敏感
# class = 1

—>2.2.5 数学(算术)运算符

名称符号
+
-
*
/
整除//
取余%
平方**

=>代码如下

print("1+1 = ", 1 + 1)
print("2-1 = ", 2 - 1)
print("3*1 = ", 3 * 1)
print("41/2 = ", 41 / 2)
print("5//2 = ", 5 // 2)
print("8%3 = ", 8 % 3)
print("8**3 = ", 8 ** 3)# 赋值运算符 += -= *= /= %= **= //=
num = 1
num += 1
print("num += 1: ", num)

=>结果如下

1
2
1+1 =  2
2-1 =  1
3*1 =  3
41/2 =  20.5
5//2 =  2
8%3 =  2
8**3 =  512

-> 2.3 字符串相关操作

—> 2.3.1 字符串定义的三种操作

name = '张三'
print(name)
name = "李四"
print(name)
name = """王五"""
print(name)

—> 2.3.2 字符串拼接

单引号与双引号组合使用方式 与java一样 转移符 "\"

nick_name = "张三'123'"
print(nick_name)
nick_name = '张三"123"'
print(nick_name)
nick_name = "张三\"123\""
print(nick_name)

ps: 特殊情况(报错原因)

TypeError: can only concatenate str (not "int") to str

字符串拼接 (这种方式 只有字符串类型才可以进行拼接 数字类型不可以 (与java不同)

—> 2.3.3 字符串格式化

方法一: 使用%s占位符号

# 字符串格式化 不同占位符 %s(字符串) %d(整数) %f(浮点数) (与java略不同)
username = "李四"
age = 18
habit = "睡觉"
money = 20.05
# print("姓名: " + username + " 年龄: " + age)  # 不可以
print("姓名: " + username + " 年龄: " + str(age))  # 可以# 使用占位符 字符串格式化
print("姓名:%s, 年龄: %s, 喜好: %s" % (username, age, habit))print("姓名:%s, 年龄: %d, 喜好: %s" % (username, age, habit))print("姓名:%s, 零花钱: %f, 喜好: %s" % (username, money, habit))

方法二: 快速格式化方式 f 与{任意类型} 组合

print(f"姓名:{name}, 年龄: {age}, 喜好: {habit}")# 表达式的格式化 可以不使用变量
print(f"姓名:{name}, 年龄: {age * 100}, 喜好类型是: {type(habit)}")

—> 2.3.4 字符串格式化-数字精度控制 %m.nf

print("数字是112 宽度1 是 %1d" % 112)
print("数字是11.345 宽度7 小数2 是 %7.2f" % 11.345)

—>2.3.5 浮点数四舍五入的问题

-> 丢失精度问题( python写法)

特殊情况 11.23 (float类型并不准确 二进制转换问题,可能存在四舍五入不正确情况)

#结果是11.23 没有四舍五入
print("数字是11.235 宽度不限制 小数2 是 %.2f" % 11.235)

-> 丢失精度问题(java写法)

System.out.printf("%.2f%n", 11.235F);

->丢失精度解释:

在《Effective Java》这本书中也提到这个原则,floatdouble只能用来做科学计算或者是工程计算,在商业计算中我们要用 (java)java.math.BigDecimal

-> 2.4 控制台输入 input()方法

类似java的Scanner简化版

—> 2.4.1 控制台输入方式一:

# 控制台输入方式一:
print("姓名是什么???")
name = input()
print(f"您输入的名字是{name}")

—> 2.4.2 控制台输入方式二:

注意: input()收集的都是str类型 类型转换不对 会报错

#控制台输入方式二: (输入的类型就是字符串 需要什么类型就转换一下)
name = input("姓名是什么???\n")
print(f"您输入的名字是: {name}")
print(f"您输入的类型是: {type(name)}")
print(f"您输入的类型是: {type(int(name))}")  # 需要转换成数字就转换一下
age = input("你的年龄是: \n")
print(f"您输入的年龄是: {age}")print("您的名字是: %s, 您的年龄是: %s" % (name, age))

->2.5 布尔类型和运算

—> 2.5.1 定义布尔变量

True 和 False , type类型是 bool

bool_1 = True
bool_2 = False
# bool_1的变量内容是: True,类型是<class 'bool'>
# bool_2的变量内容是: False,类型是<class 'bool'>
print(f"bool_1的变量内容是: {bool_1},类型是{type(bool_1)}")
print(f"bool_2的变量内容是: {bool_2},类型是{type(bool_2)}")

—> 2.5.2 比较运算符使用

符号解释运算符
等于==
不等于!=
大于>
小于<
大于等于>=
小于等于<=

代码如下:

num1 = 1
num2 = 2
print(f"num2==num1是: {num1 == num2}")  # False
print(f"num2!=num1是: {num1 != num2}")  # True
print(f"num2>=num1是: {num1 >= num2}")  # False
print(f"num2<=num1是: {num1 <= num2}")  # True
print(f"num2>num1是: {num1 > num2}")  # False
print(f"num2<num1是: {num1 < num2}")  # Truename = "张三"
name1 = "张三"
print(f"num2==num1是: {name == name1}")  # True

-> 2.6 if else elif 条件使用方式

—> 2.6.1 if 语句使用

num1 = 1
if num1 > 0:print("num1>0成立")
print("必然执行代码!")

—> 2.6.2 if else条件使用

num1 = 1
if num1 > 0:print("ok")
else:print("error")

—> 2.6.3 if elif else 条件使用

if num1 > 0:print("big")
elif num1 == 0:print("same")
else:print("small")

-> 2.7 随机数方法 random.randint(a,b)

随机1-10 a = 1 b = 10 需要导包import 一下

# import random 导包
num = random.randint(1, 10)
print(num)

3. 前面语法的总结案例

-> 3.1 超市的收银系统(控制台版)

python版与java版 看看两种语言基础的区别
===> 传送门: python入门篇03 基础案例 python版与java版

-> 3.2 python专栏地址

===> 传送门: python语言基础专栏


书写不易, 第一篇使用markdown书写, 确实比富文本的编辑器舒服许多, 上手难度会略高于富文本, 不过也还好
作者pingzhuyan 感谢观看
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/96792.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【设计模式——学习笔记】23种设计模式——策略模式Strategy(原理讲解+应用场景介绍+案例介绍+Java代码实现)

文章目录 案例引入传统方案实现实现分析 介绍基本介绍登场角色 案例实现案例一类图实现 案例二类图实现问答 策略模式在JDK源码中的使用总结文章说明 案例引入 有各种鸭子&#xff0c;比如野鸭、北京鸭、水鸭等。 鸭子有各种行为&#xff0c;比如走路、叫、飞行等。不同鸭子的…

外网连接局域网的几种方式?快解析内网穿透安全便利吗?

外网连接局域网是一项网络连接中的关键技术&#xff0c;它能够让远程用户通过互联网访问内部局域网中的资源和服务。外网连接局域网为企业提供了更大的灵活性和便捷性&#xff0c;但也需要严格的安全措施来防止未经授权的访问。 外网连接局域网的几种方式 在将外网连接到局域…

【数据结构与算法】十大经典排序算法-归并排序

&#x1f31f;个人博客&#xff1a;www.hellocode.top &#x1f3f0;Java知识导航&#xff1a;Java-Navigate &#x1f525;CSDN&#xff1a;HelloCode. &#x1f31e;知乎&#xff1a;HelloCode &#x1f334;掘金&#xff1a;HelloCode ⚡如有问题&#xff0c;欢迎指正&#…

RocketMQ 5.0 架构解析:如何基于云原生架构支撑多元化场景

作者&#xff1a;隆基 本文将从技术角度了解 RocketMQ 的云原生架构&#xff0c;了解 RocketMQ 如何基于一套统一的架构支撑多元化的场景。 文章主要包含三部分内容。首先介绍 RocketMQ 5.0 的核心概念和架构概览&#xff1b;然后从集群角度出发&#xff0c;从宏观视角学习 R…

改进YOLO系列:4.添加ACmix注意力机制

添加ACmix注意力机制 1. ACmix注意力机制论文2. ACmix注意力机制原理3. ACmix注意力机制的配置3.1common.py配置3.2yolo.py配置3.3yaml文件配置1. ACmix注意力机制论文 论文题目:On the Integration of Self-Attention and Convolution 论文链接:On the Integration…

【ROS】话题通信--从理论介绍到模型实现(C++)

1.简单介绍 话题通信是ROS中使用频率最高的一种通信模式&#xff0c;话题通信是基于发布订阅模式的&#xff0c;也即:一个节点发布消息&#xff0c;另一个节点订阅该消息。像雷达、摄像头、GPS… 等等一些传感器数据的采集&#xff0c;也都是使用了话题通信&#xff0c;换言之…

相机的位姿在地固坐标系ECEF和ENU坐标系的转换

在地球科学和导航领域&#xff0c;通常使用地心地固坐标系&#xff08;ECEF&#xff0c;Earth-Centered, Earth-Fixed&#xff09;和东北天坐标系&#xff08;ENU&#xff0c;East-North-Up&#xff09;来描述地球上的位置和姿态。如下图所示&#xff1a; ​地心地固坐标ecef和…

Python标准库-追踪异常,定位问题-traceback

在日常的编程过程中&#xff0c;我们经常会遇到各种错误和异常。而当程序发生异常时&#xff0c;了解如何有效地追踪异常信息并定位问题&#xff0c;是每个开发者必备的技能之一。 Python 提供了一个强大的工具&#xff0c;称为 Traceback&#xff0c;它可以帮助我们跟踪异常的…

java 工程管理系统源码+项目说明+功能描述+前后端分离 + 二次开发 em

Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下&#xff1a; 首页 工作台&#xff1a;待办工作、消息通知、预警信息&#xff0c;点击可进入相应的列表 项目进度图表&#xff1a;选择&#xff08;总体或单个&#xff09;项目显…

Tomcat的部署及优化(多实例和动静分离)

目录 绪论 1、tomact 1.1 核心组件 1.2 什么是 servlet 1.3 什么是 JSP? 1.4 Tomcat 功能组件结构 1.5 Tomcat 请求过程 2、Tomcat 服务部署 2.1 tomcat自身优化&#xff1a; 2.2 内核优化 2.3 jvm 2.3.1 jvm配置 2.3.2 Tomcat配置JVM参数 2.3.3 jvm优化 3、tom…

SpringBoot案例-员工管理-新增员工

查看页面原型&#xff0c;明确需求 页面原型 需求 阅读接口文档 接口文档链接如下&#xff1a; 【腾讯文档】SpringBoot案例所需文档 https://docs.qq.com/doc/DUkRiTWVaUmFVck9N 思路分析 阅读需求文档后可知&#xff0c;前端发送请求的同时&#xff0c;将前端请求参数以…

画质提升+带宽优化,小红书音视频团队端云结合超分落地实践

随着视频业务和短视频播放规模不断增长&#xff0c;小红书一直致力于研究&#xff1a;如何在保证提升用户体验质量的同时降低视频带宽成本&#xff1f; 在近日结束的音视频技术大会「LiveVideoStackCon 2023」上海站中&#xff0c;小红书音视频架构视频图像处理算法负责人剑寒向…

使用el-tree实现自定义树结构样式

实现效果: 直接上代码: <template><div><div class"tops"><el-tree :default-expanded-keys"[1]" ref"myTree" :data"data" :props"defaultProps" node-click"handleNodeClick" highlight…

IDEA两种方法修改生成的jar包名字

方法一&#xff1a; 直接修改pom文件中的如下部分 <artifactId>excelreport</artifactId> <version>0.0.1-SNAPSHOT</version> <name>excelreport</name> <description>excelreport</description> 修改完成后&#xff0c;点…

LVS+Keepalived

Keepalived概述&#xff1a; keepalived软件 就是通过vrrp协议实现高可用功能 vrrp通信原理&#xff1a; vrrp就是虚拟路由冗余协议&#xff0c;它的出现就是为了解决静态路由的单点故障vrrp是通过一种竞选的一种协议机制将路由交给某台vrrp路由器vrrp用ip多播的方式【多播地…

2023+HuggingGPT: Solving AI Tasks with ChatGPT and itsFriends in Hugging Face

摘要&#xff1a; 语言是llm(例如ChatGPT)连接众多AI模型(例如hugs Face)的接口&#xff0c;用于解决复杂的AI任务。在这个概念中&#xff0c;llms作为一个控制器&#xff0c;管理和组织专家模型的合作。LLM首先根据用户请求规划任务列表&#xff0c;然后为每个任务分配专家模…

LLaMA模型泄露 Meta成最大受益者

一份被意外泄露的谷歌内部文件&#xff0c;将Meta的LLaMA大模型“非故意开源”事件再次推到大众面前。“泄密文件”的作者据悉是谷歌内部的一位研究员&#xff0c;他大胆指出&#xff0c;开源力量正在填平OpenAI与谷歌等大模型巨头们数年来筑起的护城河&#xff0c;而最大的受益…

如何使用Kali Linux进行渗透测试?

1. 渗透测试简介 渗透测试是通过模拟恶意攻击&#xff0c;评估系统、应用或网络的安全性的过程。Kali Linux为渗透测试人员提供了丰富的工具和资源&#xff0c;用于发现漏洞、弱点和安全风险。 2. 使用Kali Linux进行渗透测试的步骤 以下是使用Kali Linux进行渗透测试的基本…

万宾燃气管网监测解决方案,守护城市生命线安全

方案背景 城市燃气管网作为连接天然气长输管线与天然气用户的桥梁&#xff0c;担负着向企业和居民用户直接供气的重要职责。随着城市燃气需求的急剧增加&#xff0c;城市燃气管网规模日趋庞大&#xff0c;安全隐患和风险也随之增加。目前&#xff0c;我国燃气管网的运行仍存在…

3D沉浸式旅游网站开发案例复盘【Three.js】

Plongez dans Lyon网站终于上线了。 我们与 Danka 团队和 Nico Icecream 共同努力&#xff0c;打造了一个令我们特别自豪的流畅的沉浸式网站。 这个网站是专为 ONLYON Tourism 和会议而建&#xff0c;旨在展示里昂最具标志性的活动场所。观看简短的介绍视频后&#xff0c;用户…