三.python入门语法1

news2024/11/17 11:44:43

目录

1. 算数运算和关系运算

1.1. 算术运算符

1.2. 关系运算符

习题

2.赋值运算和逻辑运算

2.1. 赋值运算符

2.2. 逻辑运算符

3.位运算符

       1)位与运算(A&B)

       2)位或运算(A|B)

       3)异或位运算(A^B)

       4)按位取反运算(~A)

       5)左右位移


1. 算数运算和关系运算

上一节我们学习了Python的输入输出,目前我们已经了解了Python的基础规范,接下来我们要讲一下Python的运算符,运算符是一些特殊的符号,通过运算符将不同的数据连接构成表达式。先通过一张图来看一下常用操作符

运算符1

我们先从算术运算符来介绍。

1.1. 算术运算符

运算符功能输入输出
+66+2288
-66-2244
*11*666
/60/106
%取余10%91
//整除20//92
**3**327,即三的三次方

这里的 ‘/’ 和c语言的区别,一定要注意区分。

下面我们来看一个实例:

 print("+号的功能是:66+22=",66+22)

 print("-号的功能是:66-22=",66-22)

 print('*号的功能是:11*66=',11*66)

 print("/号的功能是:60/10=",60/10)

 print('%号的功能是:30%9=',30%9)

 print('//号的功能:30//9=',30//9)

 print('**号的功能:2**3=',2**3)

输出结果为:

1

2

3

4

5

6

7

 +号的功能是:66+22= 88

 -号的功能是:66-22= 44

 *号的功能是:11*66= 726

 /号的功能是:60/10= 6.0

 %号的功能是:30%9= 3

 //号的功能:30//9= 3

 **号的功能:2**3= 8

下面给大家讲一下算术运算符的扩展功能及注意事项:

1) 加法运算符‘+’不仅提供加运算,还支持连接字符串的功能。

2) 减法运算符‘-’ 不仅提供减运算,还支持取负操作。

3) 乘法运算符‘*’不仅提供乘运算,还支持列表的倍数添入以及字符串N个的连接

4) 除法运算符‘/’在使用的过程中,必须要注意分母不能为‘0’,否则会出现语法错误。

这里也可以体现python语言的简便性,更加的人性化,比较亲和随意。

看下面一个例子:

 test = 'dotcpp'

 tests = '我是dotcpp'

 final = test + tests#这里‘+’连接了test和tests两个字符串

 number = 1000

 newnumber = -number#这里‘-’将number取负

 index = [1,2,3,4]

 index = index*3

 print(final)#‘+’连接后的test+tests

 print(newnumber)#‘-’取负后的number

 print(index)#‘*’倍数添入后的index

输出结果:

1

2

3

 dotcpp我是dotcpp

 -1000

 [123412341234]

1.2. 关系运算符

定义:a=1,b=2

运算符功能输入输出
>大于a>bFalse
<小于a<bFalse
!=不等于a!=bTrue
==判段是否相等a==bFalse
>=大于等于a>=bFalse
<=小于等于a<=bTrue

True代表可执行接下操作,False则不可以。

简单看一下下面测试代码:

 a = 1

 b = 2

 if a < b:
     print('a小于b')

 if a != b:
     print('a不相等b')

输出结果:

1

2

 a小于b

 a不相等b

习题

1.题目 1000: [竞赛入门]简单的a+b

while True:
	try:
		a,b=map(int,input().strip().split())
		print(a+b)
	except:
		break

"""
#input():获取用户输入的一行文本。
.strip():去除输入文本首尾的空白字符(包括空格、换行符等)。
.split():将处理过的字符串以空格为分隔符进行分割,返回一个字符串列表。
map(int, ...):将上一步得到的字符串列表中的每个元素映射为整数。

"""

 2.题目 1037: [编程入门]宏定义的练习

a, b = map(int, input().split())
print(a % b)

3.三角形面积

a,b,c=map(int,input().split())
S=(a+b+c)/2
area=pow(S*(S-a)*(S-b)*(S-c),0.5)
print("%.3f"%area)

2.赋值运算和逻辑运算

2.1. 赋值运算符

赋值运算符从字面上可以理解为赋给变量一个值,通常我们用‘=’将右边的指赋给左边。

结构为:

变量 = 值

A = 123

下面来通过下表来看一下常用的赋值运算符

运算符功能输入
=赋值a=2
-=减赋值a-=2(a=a-2)
+=加赋值a+=2(a=a+2)
*=乘赋值a*=2(a=a*2)
/=除赋值a/=2(a=a/2)
%=取余赋值a%=2(a=a%2)
**=幂赋值a**=2(a=a**2)
//=整除赋值a//=2(a=a//2)

我们通过一个实例来了解一下赋值运算符:

 test = 66

 print('将test加上88')

 test += 88

 print(test)

 print('将结果翻10倍')

 test *= 10

 print(test)

 print('将结果除以50')

 test /= 50

 print(test)

 print('将结果取余5')

 test %= 5

 print(test)

 输出结果:

1

2

3

4

5

6

7

8

 将test加上88

 154 

 将结果翻10

 1540

 将结果除以50

 30.8

 将结果取余5

 0.8000000000000007

2.2. 逻辑运算符

a=5,b=1

运算符功能输入输出
anda>0 and a>b True
ora>100 or a>bTrue
notnot(a>b and a>0)False

同之前的例子一样,True可进入后续语句,而False不可以。

下面我们来看一段实例:

 a=66

 b=77

 c=88

 if c > b and c > a:#此语句意 如果c大于b 并且c大于a

     print('c是最大的')

 if b > a or b > c:#如果b大于a 或者 b大于c

     print('b不是最小的')

 if not(a > b or a > c):#如果不满足a>b或者 a<c

     print('a是最小的')

输出结果为:

1

2

3

 c是最大的

 b不是最小的

 a是最小的

在做算法题的时候,逻辑运算符的使用往往决定了我们做的题是否正确。

拿下面一个例子来说:

小明的爸妈对小明的零花钱管的很严,小明的学科有y和s,当小明的考试成绩两门同时取得1(分为:1,2,3三个等级,规定级别1级>2级>3级)时会获得10元零花钱,两门同时达到2级未达1时会有5元零花钱,如果有一门为1时则获得3元零花钱,如果有一门在2以下就没有零花钱可得,那么当小明y和s的成绩分别为1和3,或者2和3时,小明分别会有多少零花钱?

代码如下:

y = int(input())

 s = int(input())

 money = 0

 if y == 1 and s == 1:#同时为级别1时

     money += 10

 elif y == 2 and s == 2:#同时为级别2时

     money += 5

 elif y == 1 or s == 1:#有一门以上为1时

     money += 3

 elif y == 3 or s == 3:#有一门以上为3时

     money = 0

 print('小明的零花钱:',money)

输出结果:

1

2

3

 1

 3

 小明的零花钱: 3

1

2

3

 2

 3

 小明的零花钱: 0


3.位运算符

位操作符属于操作符中比较难的内容,位操作符以二进制为单位进行运算,操作的对象以及结果都是整数型。位操作符有如下几个:&(按位与)、|(按位或)、^(按位异或)、~(按位取反)、>>(右位移)和<<(左位移)。

具体说明看下表:

运算符名称例子功能
&按位与A&BA和B进行位与运算
|按位或A|BA和B进行位或运算
~按位取反~AA进行取反运算
^按位异或A^BA和B进行位异或运算
>>右位移A>>cA右移c位
<<左位移A<<cA左移c位

依此介绍一下各种位运算。

       1)位与运算(A&B)

位与运算中,A和B按位进行与运算,当每位对应全是1的时候对应结果位1,反之为0

10111001
00100011
00100001

可以看出,当10111001&00100011得到00100011。当对应位同时为1才为1。

       2)位或运算(A|B)

10110010
01011110
11111110

可以看出,当10110010 | 01011110得到11111110,对应位置存在一个1的时候即为1。

       3)异或位运算(A^B)

10110010
01011110
11101100

可以看出,10110010^01011110得到11101100,对应位置相反的时候,即0对应1,1对应0的时候得到1。

       4)按位取反运算(~A)

01010101
10101010

按位取反的过程中需要运用补码运算,即0补为1,1补为0。

       5)左右位移

右移时,(第一行为移动前,第二行为移动后)

01010101
00101010

右边最低位为溢出位被丢弃,在填充左侧最高位时,如果最高位是0,则填0,如果最高位是1,则填1。右移相当于除上2的n次方。

左移时, (第一行为移动前,第二行为移动后)

00101010
01010100

左边最高位为溢出位被丢弃,在最右边空位补0,左移相当于乘上2的n次方。

这章内容带领大家深入了解计算机世界的0和1,可以选择性去掌握了解,最后来介绍一下运算符的优先级,在算法运算时遇到操作符优先级问题的时候可以参考此表格。

由低到高

<、>、<=、>=、!=、==
|
^
&
<<、>>
+、-
*、/、%、//
~、+、-
**

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

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

相关文章

uni-app运行到 Android 真机和Android studio模拟器

文章目录 1、运行到Android 真机2、运行到Android studio模拟器2.1、运行到Android studio模拟器Android studio的安装步骤2.2、安装android SDK2.3、新增虚拟设备2.4、项目运行 3、安装报错3.1、安卓真机调试提示检测不到手机【解决办法】3.2、Android Studio中缺少System Ima…

OpenCV与AI深度学习 | 实战 | 使用OpenCV和Streamlit搭建虚拟化妆应用程序(附源码)

本文来源公众号“OpenCV与AI深度学习”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;实战 | 使用OpenCV和Streamlit搭建虚拟化妆应用程序&#xff08;附源码&#xff09; 现看看demo演示。 本文将介绍如何使用Streamlit和OpenCV…

Excel锁定单元格,使其不可再编辑

‌在Excel中&#xff0c;锁定单元格后仍然可以编辑‌&#xff0c;这主要涉及到对特定单元格或区域的锁定与保护工作表的设置。以下是实现这一功能的具体步骤&#xff1a; ‌解除工作表的锁定状态‌&#xff1a;首先&#xff0c;需要全选表格&#xff08;使用CtrlA快捷键&#x…

C语言进程

什么是进程 什么是程序 一组可以被计算机直接识别的 有序 指令 的集合。 通俗讲&#xff1a;C语言编译后生成的可执行文件就是一个程序。 那么程序是静态还是动态的&#xff1f; 程序是可以被存储在磁盘上的&#xff0c;所以程序是静态的。 那什么是进程 进程是程序的执行过…

VS code 使用 Jupyter Notebook 时显示 line number

VS code 使用 Jupyter Notebook 时显示 line number 引言正文引言 有些时候,我们在 VS code 中必须要使用 Jupyter Notebook,但是默认情况下,Jupyter Notebook 是不显示 Line number 的,这对于调试工作的定位是不友好的,这里我们将介绍如何让 Jupyter Notebook 显示 Line…

认识联合体和枚举

目录 一.联合体 1.联合体的声明 2.联合体的特点 &#xff08;一&#xff09;内存共享 &#xff08;二&#xff09;大小等于最大成员的大小 另一特殊情况: &#xff08;三&#xff09;一次只能使用一个成员 3.联合体相比较于结构体 &#xff08;一&#xff09;内存分配 …

c++反汇编逆向还原指令add sub imul idiv cdq

add 加法指令 比如add a,b 逆向还原为aab&#xff1b; sub 减法 比如sub a,b 逆向还原为aa-b&#xff1b; imul 乘法 比如sub a,b 逆向还原为aa*b&#xff1b; idiv 除法 比如sub a,b 逆向还原为aa/b&#xff1b; cdq 在x86 汇编中&#xff0c;用于扩展 eax 寄存器的符号位…

基于python深度学习遥感影像地物分类与目标识别、分割实践技术

我国高分辨率对地观测系统重大专项已全面启动&#xff0c;高空间、高光谱、高时间分辨率和宽地面覆盖于一体的全球天空地一体化立体对地观测网逐步形成&#xff0c;将成为保障国家安全的基础性和战略性资源。未来10年全球每天获取的观测数据将超过10PB&#xff0c;遥感大数据时…

优思学院:如何借助“六西格玛设计”流程确保产品创新成功?

六西格玛设计&#xff08;DFSS, Design for Six Sigma&#xff09;是一种专注于产品设计初期减少变异、确保高质量的方法。虽然六西格玛的核心目标是通过减少流程和产品变异来提升质量&#xff0c;但它对创新过程有着重要的支持作用。创新过程中&#xff0c;六西格玛设计能确保…

开源b2b2c商城系统流程 多用户商城系统流程图

在选择多用户商城系统时&#xff0c;服务质量至关重要。商淘云多用户商城系统凭借其卓越的功能和强大的客户支持&#xff0c;成为了许多企业的首选。下面我们一起分析多用户商城的特性及b2b2c商城系统思维导图&#xff0c;文中的图大家需要的可评论“666”领取。 首先&#xff…

【含文档】基于Springboot+Vue的学生宿舍管理系统(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定…

tomcat 文件上传 (CVE-2017-12615)

漏洞描述&#xff1a; 当 Tomcat 运行在 Windows 主机上&#xff0c;且启用了 HTTP PUT 请求方法 影响范围&#xff1a; Apache Tomcat 7.0.0 - 7.0.79 漏洞复现&#xff1a; 创建vulfocus靶场容器 poc #CVE-2017-12615 POC import requests import optparse import ospar…

mysql索引 -- 全文索引介绍(如何创建,使用),explain关键字

目录 全文索引 引入 介绍 创建 使用 表数据 简单搜索 explain关键字 使用全文索引 mysql索引结构详细介绍 -- mysql索引 -- 索引的硬件理解(磁盘,磁盘与系统),软件理解(mysql,与系统io,buffer pool),索引结构介绍和理解(page内部,page之间,为什么是b树)-CSDN博客 全文…

UE5: Content browser工具编写02

DebugHeader.h 中的全局变量&#xff0c;已经在一个cpp file中被include了&#xff0c;如果在另一个cpp file中再include它&#xff0c;就会有一些conflicts。先全部给加一个static Add static keyword to debug functionsWrap all the functions inside of a namespaceprint …

Linux入门攻坚——34、nsswitch、pam、rsyslog和loganalyzer前端展示工具

nsswitch&#xff1a;network service switch 名称解析&#xff1a;name <---> id 认证服务&#xff1a;用户名、密码验证或token验证等 名称解析和认证服务都涉及查找位置&#xff0c;即保存在哪里。如linux认证&#xff0c;passwd、shadow&#xff0c;是在文件中&…

Linux标准IO(五)-I/O缓冲详解

1.简介 出于速度和效率的考虑&#xff0c;系统 I/O 调用&#xff08;即文件 I/O&#xff0c;open、read、write 等&#xff09;和标准 C 语言库 I/O 函数&#xff08;即标准 I/O 函数&#xff09;在操作磁盘文件时会对数据进行缓冲&#xff0c;本小节将讨论文件 I/O 和标准 I/…

20 vue3之自定义hooks

Vue3 自定义Hook的作用 主要用来处理复用代码逻辑的一些封装 Vue3 的 hook函数 相当于 vue2 的 mixin, 不同在与 hooks 是函数Vue3 的 hook函数 可以帮助我们提高代码的复用性, 让我们能在不同的组件中都利用 hooks 函数 这个在vue2 就已经有一个东西是Mixins mixins就是将…

8,STM32CubeMX配置SPI工程(读取norflash的ID)

1&#xff0c;前言 单片机型号&#xff1a;STM32F407 编程环境 &#xff1a;STM32CubeMX Keil v5 硬件连接 &#xff1a;SPI1&#xff0c;CS/SS--->PB14 注&#xff1a;本工程在1&#xff0c;STM32CubeMX工程基础&#xff08;配置Debug、时钟树&#xff09;基础上完…

ARM点灯---看手册

知识点&#xff1a; 一个程序可能会遇到内存泄漏问题&#xff0c;可能一次运行泄漏几M大小&#xff0c;执行几个小时才会泄漏到站崩溃&#xff0c;所以要查看是否有内存泄漏。 查看手册教程 0927-上午 视频1&#xff1a;25&#xff1b;00 硬件程序开发流程 最小系统:单片…

AI驱动的智能运维:行业案例与挑战解析

华为、蚂蚁、字节跳动如何引领智能运维&#xff1f; ©作者|潇潇 来源|神州问学 引言 OpenAI 发布的 ChatGPT 就像是打开了潘多拉的魔盒&#xff0c;释放出了生产环境中的大语言模型&#xff08;LLMs&#xff09;。一些新的概念&#xff1a;“大语言模型运维 (LLMOps)”…