当前位置: 首页 > article >正文

三.python入门语法1

目录

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.kler.cn/a/321079.html

相关文章:

  • vue内置指令和自定义指令
  • 【Qt实现虚拟键盘】
  • 一种时间戳对齐的方法(离线)
  • Unity音频导入设置
  • MySQL-初识数据库
  • 【大模型实战篇】vLLM的由来以及大模型部署、推理加速实践
  • redis安装(以6.0.13为例)
  • 金融领域的人工智能——Palmyra-Fin 如何重新定义市场分析
  • 【解密 Kotlin 扩展函数】自定义函数(十二)
  • Java 编码系列:线程基础与最佳实践
  • TS系列(3):常用类型(详细)
  • 把握旅游新契机,开启旅游创业新征程
  • 【Springboot入门-自动配置】
  • 【Qualcomm】高通SNPE框架的使用 | 原始模型转换为量化的DLC文件 | 在Android的DSP端运行模型
  • filebeat采集挂载出来的/home/Logs下的日志过程
  • 数据库 - MySQL的事务
  • TikTok直播推流不精准该怎么办?跟IP有关系吗?
  • 【北京迅为】《STM32MP157开发板使用手册》-第四十三章 软件定时器实验
  • 基于SpringBoot的图书进销存管理系统【附源码】
  • 利用Spring Boot开发学生宿舍管理系统
  • 十一、SOA(SOA的具体设计模式)
  • 【中级通信工程师】终端与业务(三):电信业务
  • leetcode-10. 正则表达式匹配
  • element ui中当el-dialog需要做全屏时,.fullscreen样式修改问题
  • windows电脑git提交告警:LF will be replaced by CRLF the next time Git touches it
  • 包/环境管理工具pip和conda介绍