Python基础语法(1)下

news2024/9/22 19:40:29

输入输出

和用户交互

程序需要和用户进行交互。

用户把信息传递给程序的过程,称为 "输入",也就是用户给计算机下命令就叫做输入。

程序把结果展示给用户的过程,称为 "输出",也就是计算机在向用户汇报工作。

输入输出的最基本的方法就是控制台,用户通过控制台输入一些字符串,程序再通过控制台打印出一些字符串。在计算机里,就把用户能输入命令,向计算机安排工作,计算机再把结果显示出来,这样的程序,就称为控制台。控制台是一种人和计算机交互的最基础方式,但是日常生活中不常用,不常用的原因是它要通过命令来操作,这个命令操作就不太方便,那就要求操作计算机的用户要熟悉各种命令,更常见的交互方式叫做图形化界面,所谓图形化界面就是我们现在使用的画图板这样的工具一样,我可以通过鼠标来点击这里的按钮,或者点击这里的一些菜单来完成一些具体的功能,这样的话,用户就不用去记,或者就不用去背一些相关的命令了。Pythcharm就是图形化界面的程序。图形化界面的程序编写起来并不容易,课堂上还是使用控制台的方式来进行交互。

PyCharm 运行程序,下方弹出的窗口就可以视为是控制台。

windows 自带的 cmd 程序,也可以视为是控制台。

输入输出的最常见方法是图形化界面,如我们平时用到的 QQ、浏览器、steam 等、都不需要用户输入命令,而只是通过鼠标点击窗口点击按钮的方式来操作。

Python 当然也可以用来开发图形化界面的程序,但是图形化程序开发本身是一个大话题,咱们课堂上暂时不做介绍。

通过控制台输出

Python 使用 print 函数输出到控制台。

print('hello')

不仅能输出一个字符串,还可以输出一个其他类型的变量

a = 10

print(a)

b = True

print(b)  

如何批量注释代码:

1.选中要注释的代码

2.使用ctrl + /

如何取消注释代码:

1.选中要取消注释的代码

2.使用ctrl + /

更多的时候,我们希望能够输出的内容是混合了字符串和变量的。

示例: 输出 num = 10  

num = 10

print(f'num = {num}')

print(f'a = {a}')这个代码叫做格式化字符串。 在Python中有一个专业的术语,叫f-string,此处的f表示format,此处就可以使用{}这样的语法,往字符串里嵌入变量或者表达式。
比如:print(f'a = {a + 10}')。

Python 最早支持的格式化字符串,也是效仿C的 printf ,并作出了改进。Python3.6版本才开始支持f-string。

注意:

使用 f 作为前缀的字符串,称为 f-string

里面可以使用 { } 来内嵌一个其他的变量/表达式.  

 PS: Python 中还支持其他的格式化字符串的方法,咱们此处只了解这个最简单的即可,其他的暂时不做介绍。

通过控制台输入

python 使用 input 函数,从控制台读取用户的输入。

num = 0

num = input('请输入一个整数: ')

print(f'你输入的整数是 {num}')

input输入的时候,就会等待用户输入!这个等待可能是一个非常长的等待,完全就看用户啥时候输入,如果用户一直不输入,就会一直在这里等待输入。如果只是单纯的拿到用户的输入,然后打印,此时就按照 str 打印即可,如果需要根据用户输入的内容进行算术运算,此时就需要先把读到的str转换成int。那如何转换成整数呢?我们可以使用 int() ,通过这个方式就可以完成类型的转换。

注意: input 的参数相当于一个 "提示信息",也可以没有

input 的返回值是字符串类型

a = input('请输入第一个整数: ')

b = input('请输入第二个整数: ')

print(f'a + b = {a + b}')  

此处的结果是字符串拼接,不是算术运算,如果要想进行算术运算,需要先转换类型。

a = input('请输入第一个整数: ')

b = input('请输入第二个整数: ')

a = int(a)

b = int(b)

print(f'a + b = {a + b}')

通过 int( ) 把变量转成了 int 类型

类似的,使用 float( )、bool( )、str( ) 等可以完成对应的类型转换

代码示例:输入 4 个小数, 求 4 个小数的平均值

a = input('请输入第一个数字: ')

b = input('请输入第二个数字: ')

c = input('请输入第三个数字: ')

d = input('请输入第四个数字: ')

a = float(a)

b = float(b)

c = float(c)

d = float(d)

avg = (a + b + c + d) / 4

print(f'平均值: {avg}')

此处为了输入 4 个数字,执行了四次 input,如果是读取任意多个数字怎么办呢? 这个时候就需要用到循环了,后面再介绍。

运算符

算术运算符

像 + - * / % ** // 这种进行算术运算的运算符,称为算术运算符 

先算乘方,然后是乘除,最后算加减,如果运算过程中想修改默认的运算顺序,就需要加上()。

注意1:/ 中不能用 0 作为除数,否则会抛出异常

print(10 / 0) 

这种运行时出现的错误,也叫做“抛出异常”。有些编程语言中,/0会抛出异常,/浮点数0.0会得到无穷大,但是在Python中,两种情况都会抛出异常。 

异常是编程语言中的一种常见机制,表示程序运行过程中,出现了一些 "意外情况",导致程序不能继续往下执行了

注意2: 整数 / 整数 结果可能是小数,而不会截断

除了Python之外,大部分的编程语言,都是整数除以整数,结果还是整数

print(1 / 2)

注意3:% 不是 "百分数",而是求余数

print(7 % 2)   

关于求余数,有些同学容易蒙,其实这个是小学二年级数学就学过的,7 除以 2 ,商是 3,余数是 1。

注意4: ** 是求乘方. 不光能算整数次方, 还能算小数次方

print(4 ** 2)

print(4 ** 0.5)

注意5: // 是取整除法(也叫地板除),整数除以整数,结果还是整数(舍弃小数部分,并向下取整,不是四舍五入)  

print(7 // 2)

print(-7 // 2)

关系运算符

像 <= >= == != 这一系列的运算符称为关系运算符,它们是在比较操作数之间的关系

其中

<= 是 "小于等于"

>= 是 "大于等于"

== 是 "等于"

!= 是 "不等于"   

(1) 关系运算符对应的表达式,值是布尔类型,如果关系符合, 则表达式返回 True,如果关系不符合,则表达式返回 False

a = 10

b = 20

print(a < b)
print(a <= b)
print(a > b)
print(a >= b)
print(a == b)
print(a != b)

(2) 关系运算符不光针对整数/浮点数进行比较,还能针对字符串进行比较

a = 'hello'

b = 'world'

print(a < b)
print(a <= b)
print(a > b)
print(a >= b)
print(a == b)
print(a != b)

注意:

直接使用 == 或者 != 即可对字符串内容判定相等(这一点和 C / Java 不同)

字符串比较大小,规则是 "字典序"

关于字典序:

想象一个英文词典,上面的单词都是按照字母顺序排列,如果首个字母相同,就比较第二个字母. (就比如著名单词 abandon),我们认为一个单词在词典上越靠前,就越小,越靠后,就越大

注:针对中文进行字符串大小比较是没有意义的,至少按照默认的字典序来说是没有意义的。在计算机里,表示中文,其实是用多个字节构成的一个比较大的数字来进行比较,这里就不过多去展开。

(3) 对于浮点数来说,不要使用 == 判定相等

因为浮点数在内存中的存储和表示,是可能存在误差的。这样的误差在进行算术运算的时候就可能被放大,从而导致 == 的判定出现误判。

print(0.1 + 0.2 == 0.3)

注意:浮点数在计算机中的表示并不是精确的! 在计算过程中,就容易出现非常小的误差

print(0.1)

print(0.2)

print(0.3)

print(0.1 + 0.2) 

可以看到,0.1 + 0.2 的结果并非是 0.3,而是带了个小尾巴,虽然这个尾巴非常小了,但是 == 是锱铢必较的,仍然会导致 == 的结果为 False

不止是 Python 如此,主流编程语言都是如此,这个是 IEEE754 标准规定的浮点数格式所引入的问题,此处我们不做过多讨论

正确的比较方式:不再严格比较相等了,而是判定差值小于允许的误差范围

a = 0.1 + 0.2

b = 0.3

print(-0.000001 < (a - b) < 0.000001)

Python中支持这种连续小于的写法,判定a - b既是< 0.000001又是大于-0.000001。

实际工程实践中,误差在所难免,只要保证误差在合理范围内即可

逻辑运算符

像 and or not 这一系列的运算符称为逻辑运算符

and 并且,两侧操作数均为 True,最终结果为 True,否则为 False(一假则假)

or 或者,两侧操作数均为 False,最终结果为 False,否则为 True(一真则真)

not 逻辑取反,操作数本身为 True,则返回 False,本身为 False,则返回 True

此处说的 "并且" 和 "或者",就是我们日常生活中使用的 "并且" 和 "或者",想象一下未来丈母娘问你要彩礼,什么叫做 "有房并且有车",什么叫做 "有房或者有车"

a = 10 

b = 20

c = 30

print(a b and b c)

print(a b and b > c)

print(a > b or b > c)

print(a b or b > c)

print(not a b)

print(not a > b)

一种特殊写法

a < b and b < c 这个操作等价于 a < b < c,这个设定和大部分编程语言都不相同

关于短路求值

和其他编程语言类似,Python 也存在短路求值的规则,对于 and,如果左侧表达式为 False,则整体一定为 False,右侧表达式不再执行,对于 or,如果左侧表达式为 True,则整体一定为 True,右侧表达式不再执行

print(10 > 20 and 10 / 0 == 1)

print(10 20 or 10 / 0 == 1)

 上述代码没有抛出异常,说明右侧的除以 0 操作没有真正执行

赋值运算符

(1) = 的使用

= 表示赋值,这个我们已经用过很多次了,注意和 == 区分

= 除了基本的用法之外,还可以同时针对多个变量进行赋值

链式赋值

a = b = 10

多元赋值 

a, b = 10, 20 

代码实例:交换两个变量

基础写法

a = 10

b = 20

tmp = a

a = b

b = tmp  

基于多元赋值

a = 10

b = 20

a, b = b, a 

(2) 复合赋值运算符

Python 还有一些复合赋值运算符,例如 += -= *= /= %= 其中 a += 1 等价于 a = a + 1,其他复合赋值运算符也是同理

a = 10

a = a + 1

print(a)

b = 10

b += 1

print(b)

注意:像 C++ / Java 中,存在 ++ -- 这样的自增/自减运算符,Python 中则不支持这种运算,如果需要使用,则直接使用 += 1 或者 -= 1

++ -- 最大的问题就是容易分不清前置和后置的区别,这一点 Python 语法在设计的时候就进行了 规避,避免出现这种不直观,并且容易混淆的语法

其他...

除了上述之外,Python 中还有一些运算符,比如身份运算符 (is, is not),成员运算符 (in, not in), 位运算符 ( & | ~ ^ >) 等

此处咱们暂时不介绍

总结

本章节中我们学习了 Python 中的最基础的语法部分

常量

变量

类型:整数、浮点数、字符串、布尔值

注释 

输入输出

运算符:算术运算符、关系运算符、逻辑运算符、赋值运算符

当前我们的代码还只能进行一些简单的算术运算,下个章节中我们将学习 Python 中的逻辑判断, 然后我们就可以写稍微复杂一点的程序了

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Hot100】LeetCode—139. 单词拆分

目录 1- 思路题目识别完全背包-动规五部曲 2- 实现⭐单词拆分——题解思路 3- ACM 实现 原题链接&#xff1a;139. 单词拆分 1- 思路 题目识别 识别1 &#xff1a;字符串 和一个 字符串数组 判断识别2&#xff1a;判断字符串能不能由字符串数组拼接形成&#xff0c;返回 true…

SprinBoot+Vue房屋租赁管理系统的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平台Java领域优质…

C语言练习题3

1.if语句 /*if语句*/ #include<stdio.h> int main() {int a 10;int b 12;if (a < b) {printf("%d", a);}return 0; }if语句&#xff1a;是条件判断语句。根据小括号中的条件判断该语句中的代码是否执行。如果符合判断的条件就执行&#xff0c;不符合则跳…

零基础国产GD32单片机编程入门(二十一)系统时钟频率配置实战含源码

文章目录 一.概要二.GD32F103C8T6单片机时钟源介绍二.GD32F103C8T6单片机外部高频晶振配置三.GD32F103C8T6单片机内部高频晶振配置四.GD32F103C8T6单片机使用内部8M晶振实验五.工程源代码下载六.小结 一.概要 GD32单片机的时钟源包括多种选项&#xff0c;时钟控制单元提供了一…

滑动窗口+动态规划

前言&#xff1a;分析这个题目的时候&#xff0c;就知道要这两个线段要分开&#xff0c;但是要保证得到最优解&#xff0c;那么我们在选取第二根线段的时候&#xff0c;要保证我们第一根线段是左边最优解 并且我们选的两根线段的右端点一定是我们的数组的点&#xff08;贪心思…

SprinBoot+Vue校园车辆管理系统的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平台Java领域优质…

HTML中的文字与分区标记

1.font标记&#xff1a;用来设置文字的字体&#xff0c;大小&#xff0c;颜色&#xff0c;等属性 <!--font:font标记用来设置字体大小颜色属性size:设置字号&#xff0c;默认是3号&#xff0c;1表示4号&#xff0c;-1表示2号&#xff0c;取值范围是[1,7]或[-7,-1]color:设置…

实战案例(4)如果想限制某些终端能上网,哪些不能上网有什么方法呢?

案例四&#xff1a;如果想限制某些终端能上网&#xff0c;哪些不能上网有什么方法呢&#xff1f; 实际中有这样的需求&#xff0c;客户那边希望某些区域只能boss上网或者boss随时都可以上&#xff0c;但是员工需要休息时间才能上&#xff0c;针对这样的需求我们来看看怎么去实现…

Leetcode3271. 哈希分割字符串

Every day a Leetcode 题目来源&#xff1a;3271. 哈希分割字符串 解法1&#xff1a;模拟 按题意模拟。 代码&#xff1a; /** lc appleetcode.cn id3271 langcpp** [3271] 哈希分割字符串*/// lc codestart class Solution { public:string stringHash(string s, int k){…

适用于 Windows 的 Citrix Workspace 中发现两项权限提升

在适用于 Windows 的 Citrix Workspace 应用程序中发现了两个高严重性漏洞CVE-2024-7889 和 CVE-2024-7890。 这些漏洞影响当前版本的 2405 之前的版本以及 LTSR 的 2402 CU1 之前的版本。 Citrix 建议客户立即更新其安装&#xff0c;以减轻使用 Citrix Workspace 环境的用户…

基于亲和性的 GPU 容器绑核策略 Copy

1.引言 在高性能计算和大规模并行任务处理中&#xff0c;GPU已经成为不可或缺的加速器。为了充分发挥GPU的计算能力&#xff0c;通过合理分配CPU核与GPU的绑定来优化CPU和GPU的关系至关重要。我们将探讨socket和NUMA&#xff08;非统一内存访问&#xff09;的概念&#xff0c;并…

计算机的错误计算(九十)

摘要 计算机的错误计算&#xff08;八十九&#xff09;探讨了反双曲余切函数 acoth(x)在 附近的计算精度问题。本节讨论绝对值为大数的反双曲余切函数值的计算精度问题。 Acoth(x) 函数的定义为&#xff1a; 其中 x 的绝对值大于 1 . 例1. 计算 acoth(1.000000000002e15) .…

ORCAD位号,BOOM表

1 ORCAD在页设置编号范围 2 输出BOOM表

基于python+django+vue的农产品销售管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于pythondjangovueMySQL的农…

开发基础之Python 函数(Basic Python Functions for Development)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…

【天池比赛】【零基础入门金融风控 Task2赛题理解】实战进行中……

2.3 代码示例 2.3.1 导入数据分析及可视化过程需要的库 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns import datetime import warnings warnings.filterwarnings(ignore) 2.3.2 读取文件 #读取数据时相对路径载入报错时…

并发编程-JUC原子类、CAS和 Unsafe类

文章目录 零、说在前面一、CAS原理1.1 CAS简介1、线程安全的实现方案2、什么是CAS 1.2 CAS使用案例1.3 CAS存在的问题1、ABA问题2、只能保证一个共享变量之间的原子性操作3、无效CAS会带来开销问题4、总线风暴问题 1.4 CAS在JDK中的应用 二、Unsafe类详解2.1 Unsafe类介绍2.2 U…

使用 Azure 机器学习微调小型语言模型 (SLM) Phi-3

目录 概述 动手实验室 概述 小型语言模型 (SLM) 的动机 效率&#xff1a;SLM 的计算效率更高&#xff0c;需要的内存和存储空间更少&#xff0c;而且由于需要处理的参数更少&#xff0c;因此运行速度更快。成本&#xff1a;培训和部署 SLM 的成本较低&#xff0c;使其可供更广…

【MySQL】从0开始在Centos 7环境安装MySQL

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:MySQL ⚙️操作环境:Xshell (操作系统:CentOS 7.9 64位) 目录 准备步骤 卸载原有环境 安装步骤 获取MySQL官方yum源 安装MySQL yum源 结语 准备步骤 卸载原有环境 第一步登录云服务器(注意安装yum需要在root身份下…

ctf.show靶场ssrf攻略

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 web351 解析:post传入url参数他就会访问。 解法: hackbar传入url参数写入https://127.0.0.1/flag.php web352 解析:post传入url参数&#xff0c;不能是127.0.0.1和localhost 解法:缩写127.1传入 web353 解析…