目录

运算符
  算数运算符
  比较运算符
  赋值运算符
  位运算符
  逻辑运算符
  成员运算符
  身份运算符
  Python 中运算符的优先级
  运算符总结
基础语法
  判断类型 isinstence
  代码块
  流程控制
  while循环
  双向循环的金典例题
  for循环

运算符

算数运算符

运算符 描述 实例
+ 加 - 两个对象相加 a + b 输出结果 31
- 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -11
* 乘 - 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 210
/ 除 - x 除以 y b / a 输出结果 2.1
% 取模 - 返回除法的余数 b % a 输出结果 1
** 幂 - 返回x的y次幂 a**b 为10的21次方
// 取整除 - 向下取接近商的整数 9//2>>>4 -9//2>>>-5

``

比较运算符

运算符 描述 实例
== 等于 - 比较对象是否相等 (a == b) 返回 False。
!= 不等于比较两个对象是否不相等 (a != b) 返回 True。
> 大于 - 返回x是否大于y (a > b) 返回 False。
< 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价 (a < b) 返回 True
>= 大于等于 - 返回x是否大于等于y。 (a >= b) 返回 False。
<= 小于等于 - 返回x是否小于等于y。 (a <= b) 返回 True。

赋值运算符

运算符 描述 实例
= 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c
+= 加法赋值运算符 c += a 等效于 c = c + a
-= 减法赋值运算符 c -= a 等效于 c = c - a
*= 乘法赋值运算符 c *= a 等效于 c = c * a
/= 除法赋值运算符 c /= a 等效于 c = c / a
%= 取模赋值运算符 c %= a 等效于 c = c % a
**= 幂赋值运算符 c **= a 等效于 c = c ** a
//= 取整除赋值运算符 c //= a 等效于 c = c // a
:= 海象运算符,可在表达式内部为变量赋值。Python3.8 版本新增运算符 在这个示例中,赋值表达式可以避免调用 len() 两次
if (n := len(a)) > 10:
print(f"List is too long ({n} elements, expected <= 10)")

位运算符

#a 为 60,b 为 13

按位与 &
var1 = 19
var2 = 15
print(var1 & var2) 19的二进制
0000 ... 10011
15的二进制
0000 ... 01111 0000 ... 10011
0000 ... 01111
0000 ... 00011 => 3 按位或 |
var1 = 19
var2 = 15
print(var1 | var2) 19的二进制
0000 ... 10011
15的二进制
0000 ... 01111 0000 ... 10011
0000 ... 01111
0000 ... 11111 => 31 按位异或 ^ 两个值不一样,返回真,否则返回假
1 0 => 1
1 1 => 0
0 0 => 0
0 1 => 1 var1 = 19
var2 = 15
print(var1 ^ var2) 19的二进制
0000 ... 10011
15的二进制
0000 ... 01111 0000 ... 10011
0000 ... 01111
0000 ... 11100 => 28 << 左移
""" 左移相当于做乘法 : 5 * 2的n次幂 """
res = 5 << 1 # 10
res = 5 << 2 # 20
res = 5 << 3 # 40
print(res)
0000 ... 101
0000 ... 1010 移动一位 10
0000 10100 移动二位 20 >> 右移
""" 右移相当于做除法 : 5 // 2的n次幂 """
res = 5 >> 1 # 2
res = 5 >> 2 # 1
res = 5 >> 3 # 0
print(res)
0000 ... 101
0000 ... 010 移动一位 2
0000 ... 001 移动二位 1
0000 ... 000 移动三位 0 ~ 按位非 (针对于补码进行操作,按位取反,包括符号位)
"""公式: -(n+1)"""
var1 = ~19
print(var1)
~ 按位非每一位都取反,包括符号位,求反码每一位除了符号位,都取反.
原码:0000 ... 10011
反码:0000 ... 10011
补码:0000 ... 10011 补码: 0000 ... 10011
按位非: 1111 ... 01100
给你补码求原码:
补码: 1111 ... 01100
反码: 1000 ... 10011
原码: 1000 ... 10100 => -20 var1 = ~(-22)
print(var1)
原码: 1000 ... 10011
反码: 1111 ... 01100
补码: 1111 ... 01101
补码: 1111 ... 01101
按位非: 0000 ... 10010
给你补码求原码:
正数 : 补码 = 反码 = 原码
原码: 0000 ... 10010 => 18
运算符 描述 实例
& 按位与运算符:参与运算的两个值,如果两个相应位都为1,则为0 (a & b) 输出结果 12 ,二进制解释: 0000 1100
| 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 (a b) 输出结果 61 ,二进制解释: 0011 1101
^ 按位异或运算符:当两对应的二进位相异时,结果为1 (a ^ b) 输出结果 49 ,二进制解释: 0011 0001
~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1 (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式
<< 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 a << 2 输出结果 240 ,二进制解释: 1111 0000
>> 右移动运算符:把">>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数 a >> 2 输出结果 15 ,二进制解释: 0000 1111

逻辑运算符

a 为 10, b为 20:
优先级 () > not > and > or
逻辑短路:
(1) True or 表达式
(2) False and 表达式
运算符 表达式 描述 实例
and x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 20。
or x or y 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。 (a or b) 返回 10。
not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False

成员运算符

运算符 描述 实例
in 如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

身份运算符

运算符 描述 实例
is is 是判断两个标识符是不是引用自一个对象 x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
is not is not 是判断两个标识符是不是引用自不同对象 x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。

Python 中运算符的优先级

算位比身成逻

运算符 描述
* 指数(优先级最高
~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,求余数和取整除
+ - 加法减法
>> << 左移 右移运算符
& 位 ‘AND’
^ 位运算符
<= < > >= 比较运算符
== != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not and or 逻辑运算符

运算符总结

(1) 个别运算符:
优先级最高 ** 幂运算
优先级最低 = 赋值运算符
() 括号可以提升运算优先级

(2) 整体 一元运算符 > 二元运算符
一元运算符: 同一时间,只操作一个值 - ~
二元运算符: 同一时间,操作两个值 + - * / …

(3) 同一层级
逻辑: () > not > and > or
算数: 乘除 > 加减
位运算符: ( << >> ) > & > ^ > |

(4) 其他运算符
算数运算符 > 位运算符 > 比较运算符 > 身份运算符> 成员运算符 > 逻辑运算符
赋值运算符是最后算完进行赋值,做收尾工作的.

基础语法

判断类型 isinstence

    1. 语法:
      用法一 :
      isinstance(要判断的值,要判断的类型) 返回True 或者 False
      用法二:
      isinstance(要判断的值,(可能的类型1,可能的类型2,可能的类型3 … ) ) 如果有一个类型满足,返回的是True 否则 返回False
    2. 数据类型:
      int float bool complex str list tuple set dict
      用法一
      res = isinstance(5,int)
      res = isinstance(“11223344”,str)
      res = isinstance([1,2,3],tuple)
      print(res)
      用法二
      res = isinstance(16, (str,list,tuple) )
      print(res)

代码块

    1. 代码块 : 以冒号作为开始,用缩进来划分作用域
    2. 作用域:作用的区域,作用的范围
    3. 代码块的注意点:
      “”“要么全都是一个tab缩进,要么全都是4个空格,不能混合使用”""
      if 10 == 10:
      print(100)
      print(200) # IndentationError

流程控制

    1. 流程: 代码执行的过程
    2. 控制: 对代码执行过程的一种把控
    3. 流程控制的三大结构
      1.顺序结构 : 默认代码依次从上到下执行
      2.分支结构 : 4种
      3.循环结构 : for while
    4. if 条件表达式
      1单项分支
      if
      2双向分支
      if else
      3多项分支
      if elif else
      4巢状分支
      if
      if
      if
      else
      else
      else

while循环

特点:

减少代码的冗余,提升代码的效率

语法:

while 条件表达式:
code1…
code2…
1.初始化一个变量
2.写上循环的判断条件
3.自增自减的变量值

栗子:

方法一
i = 1
total = 0
while i<=100:
# 把所有的i值全部累加到total这个变量中
total += i # total = total + i
i+=1
print(total)
方法二
total = 0
i = 1
sign = True
while sign:
total += i # total = total + i
i+=1
# 手动加上终止循环的条件
if i == 101 :
sign = False
print(total)

双向循环的金典例题

打印十行十列小星星(隔列换色小星星,两个循环)

i= 0
while i< 10 :
i= 0
while i<10:
if j % 2 == 0:
print("★",end="")
else:
print("☆",end="")
j+1
print()
i +=1

99乘法表

i = 1
while i <10;
j =1
while j<i:
print("%d*%d=%2d"%(i,j,i*j),end="")
j +=1
print()
i+=1

for循环

    1. 特点:遍历, 孙欢, 迭代
    2. for主要用于遍历数据而提出,while在遍历数据时,有局限性
      for 变量 in 可迭代对象:
      code1
      code2
      可迭代对象(容器类型数据,range对象,迭代器)
    3. for循环遍历不等长的二级容器
container = [["刘聪","毛洪磊","余锐","张家豪"],("崔文君","张捷")]

for i in container:
for j in i:
print(j)

      

       4. 遍历等长的二级容器

container = [["刘聪","毛洪磊","余锐","张家豪"],("崔文君","张捷")]

for i in container:
for j in i:
print(j)
    1. renge对象
      range(开始值,结束值,步长)
      结束值本身取不到,取到结束值之前的那个数
    2. while 与 for
      while : 较为复杂的逻辑
      for : 数据的遍历
      while 和 for 部分代码可以互相转换
    3. 关键字的使用
      1pass 过(占位)
      2break 终止当前循环
      3continue 跳过当前循环,从下一次循环开始
      在while中注意在continue前加(i+=1).

Python ( 学习基础篇 第二部 )的更多相关文章

  1. Python ( 学习 基础篇第一部 )

    目录 注释 注释的分类 注释的注意点 变量 变量的概念 变量的声明 变量的命名 变量的交换 变量的缓存机制 常量 进制 进制的转换 原码 反码 补码 六大数据类型 Number 的四大类 字符串 st ...

  2. Python学习—基础篇之文件操作

    文件操作 文件操作也是编程中需要熟练掌握的技能,尤其是在后台接口编写和数据分析过程中,对各种类型的文件进行操作,获取文件信息或者对信息进行存储是十分重要的.本篇博客中将主要对常见的文本格式文件和Exc ...

  3. Python学习——基础篇

    1.python的安装     python下载地址:https://www.python.org/downloads/     安装完成后,运行cmd.exe,输入python     如果出现“p ...

  4. Python学习—基础篇之常用模块

    常用模块 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要 ...

  5. Python学习—基础篇之基本数据类型(一)

    数据类型 在python中,能够直接处理的基本数据类型主要有数字类型.字符串类型.字节类型.布尔类型.列表.元组.字典.集合等. 一.数字类型 1.1 数字类型的创建 # 数字类型 a = 10 b ...

  6. Python学习—基础篇之基本数据类型(二)

    Python中重要的数据结构 1.列表 2.元组 3.字典 4.集合 列表 1.创建列表 # 方式一 name = [] print(type(name)) # 执行结果 >>> & ...

  7. Python学习---基础篇

    ###打开文件并打印: #!/usr/bin/python3 f = open('F://myproject/test.txt', encoding='utf-8',mode='r') content ...

  8. Docker虚拟化实战学习——基础篇(转)

    Docker虚拟化实战学习——基础篇 2018年05月26日 02:17:24 北纬34度停留 阅读数:773更多 个人分类: Docker   Docker虚拟化实战和企业案例演练 深入剖析虚拟化技 ...

  9. Python学习基础笔记(全)

    换博客了,还是csdn好一些. Python学习基础笔记 1.Python学习-linux下Python3的安装 2.Python学习-数据类型.运算符.条件语句 3.Python学习-循环语句 4. ...

随机推荐

  1. AtomicInteger原理&源码分析

    转自https://www.cnblogs.com/rever/p/8215743.html 深入解析Java AtomicInteger原子类型 在进行并发编程的时候我们需要确保程序在被多个线程并发 ...

  2. mybatis的dao注入失败

    转载自https://blog.csdn.net/hanpenghu/article/details/83897618 springboot maven资源路径配置 resource路径配置, 解决m ...

  3. 【5】JMicro免费在线消息服务

    JMicro是一个用Java语言实现的开源微服务全家桶, 源码地址:https://github.com/mynewworldyyl/jmicro, Demo地址:http://jmicro.cn/. ...

  4. Oracle学习(九)存过、游标、RECORD整合

    一.代码 /*1.定义存过*/ CREATE OR REPLACE PROCEDURE PRO_RE_USER_ORD_GOODS( --NOW_DATE格式:YYYYMMDD 如:20190801( ...

  5. svn的使用学习

    一:安装 1.svn安装包,语言包下载 地址:https://pan.baidu.com/s/1PFM7ya_hNJM-v979KgCpgA 提取码:mpxq 2.运行下载的TortoiseSVN程序 ...

  6. Flutter继承环信IM-发送视频时失败:No value for fileLength

    首先贴一下代码: 这是发送视频消息的方法 报出一下错误信息: 这是由于在解析的时候JSON里面没有fileLength这个值 往回看发送视频消息api,也并不需要fileLength参数 那顺着错误信 ...

  7. (转)ServletConfig与ServletContext

    出处:http://blog.csdn.net/cl05300629/article/details/9362601 作者:伫望碧落 一.Servlet配置对象(ServletConfig):Serv ...

  8. vscode链接git拉取项目

    vscode终端中就可操作 初始化 git  init 链接 git git remote add origin http://**************.git 拉取项目 git clone ht ...

  9. 玩命学JVM(二)—类加载机制

    前言 Java程序运行图: 上一篇玩命学JVM(一)-认识JVM和字节码文件我们简单认识了 JVM 和字节码文件.那JVM是如何使用字节码文件的呢?从上图清晰地可以看到,JVM 通过类加载器完成了这一 ...

  10. Lua table(表)

    table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数组.字典等. Lua table 使用关联型数组,你可以用任意类型的值来作数组的索引,但这个值不能是 nil. Lua ta ...