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

python入门day02

1.python中的位运算符(了解):

 位运算符把数字看作二进制数来进行计算的。

  • "位与"运算(&) :对应位都为1时结果为1,否则为0。
      0000 0000 0000 1100&  0000 0000 0000 1000--------------------------0000 0000 0000 1000
  • "位或"运算(|):只要对应位中有一个为1时结果为1。
       0000 0000 0000 0100|  0000 0000 0000 1000-------------------------- 0000 0000 0000 1100
  • "位异或"运算(^):对应位不同时结果为1,相同结果为0。
      0000 0000 0001 1111^  0000 0000 0001 0110--------------------------0000 0000 0000 1001
  • "位取反"运算(~):进行取反操作,即将所有的0变为1,将所有的1变为0。
   ~  0000 0000 0111 1011--------------------------1111 1111 1000 0100
  • "左移位"运算(<<):将数字的位向左移动指定的位数,高位丢弃,低位补0。相当于乘以2的n次方。

            00000010
        0000001000

  • "右移位"运算(>>):将数字的位向右移动指定的位数,低位丢弃,高位补0或者保持符号位不变。(如果原高位为0,则高位补0;如果原高位为1,则高位补1)。相当于除以2的n次方。

          00001000                                  10001000
          0000001000                              1110001000           

2.运算符的优先级

运算符描述说明
**幂运算
~、+、-取反、正号、负号
*、/、%、//算数运算符
+、-算数运算符
<<、>>位运算符中的左位移、右位移
&位运算符中的位与
^位运算符中的位异或
|位运算符中的位或
<、<=、>、>=、!=、==比较运算符
=赋值运算符

3.判断语句:if..elif..else

  • 语法结构:

            if 表达式1:
                   语句块1
            elif 表达式n:
                   语句块n
            else:
                  语句块n+1

  • 当语句块的内容只有一句代码时,可以取消语句块前面的缩进,直接将语句块写在表达式的后面;
  • 当判断条件只有一个,且输出语句非常简短,可以简写,如:

        print("恭喜你,中奖了!" if number==123456 else "很遗憾,没有中奖!")

        满足条件,执行if左侧,不满足,执行if右侧

   score=eval(input("请输入你的成绩:"))        if score<0 or score>100:                  if score<0 or score>100:print("成绩无效!")print("成绩无效!")                    elif 0<=score<60:print("E")elif 0<=score<60:        ===========     elif 60<=score<70:print("D")print("E")           ===========     elif 70<=score<80:print("C")elif 60<=score<70:                       elif 80<=score<90:print("B")print("D")                           else: print("A")       elif 70<=score<80:             print("C")elif 80<=score<90:print("B")else:print("A")

4.for循环

  • 语法结构:

           for 循环变量 in 遍历对象:
                    语句块1
           else:
                    语句块2

  • 当所有循环正常执行且执行结束后(循环未break),执行else中的逻辑
  • 补充:range()是Python中的内置函数,产生一个[n,m)的整数序列,包含n,不包含m
# 判断100-999之间的水仙花数
"""
水仙花数:三位数 = 个位数三次方 + 十位数三次方 + 百位数三次方
"""
for i in range(100,1000):sd=i%10                 # 个位数tens=i//10%10           # 十位数hundreds=i//100         # 百位数if i==sd**3+tens**3+hundreds**3:print(i)
else:print("循环执行结束了")

5.while循环

  • 语法结构:

           while  表达式1:
                    语句块1
            else:
                    语句块2

  • while循环的四个步骤:

       1) 初始化变量
       2) 条件判断
       3) 语句块
       4) 改变变量

  • 当所有循环正常执行且执行结束后(循环未break),执行else中的逻辑
  • break和continue在循环结构中使用,break用于退出整个循环结构,continue用于结束本次循环而进入下一次循环。
# 计算1-100之间的累加和s=0i=1                    # 初始化变量while i<=100:          # 条件判断s+=i               # 语句块i+=1               # 改变变量else:print("1-100之间的和为:",s)

6.序列、切片及序列操作

  • 序列 : 是一个用于存储多个值的连续空间
  • 索引 : 序列中每个值对应的整数编号,索引有正向递增索引(0,1,2...)和反向递减索引(...-3,-2,-1)
  • 切片操作 : 序列 [ start : end : step ]

          start省略时,默认从0开始(包含)

          end省略时,默认到最后一个结束(不包含)

          step省略时,默认长度为1

          step为负数时,按照反向递减索引切片

s="helloword"
print(s[:10:2])                           # hlood
print(s[0::3])                            # hlo
print(s[0:10:])                           # helloword
print(s[::-1]) === print(s[-1:-10:-1])    # drowolleh
print(s[::-2]) === print(s[-1:-10:-2])    # doolh
  • 序列操作:
操作符/函数描述说明
x in s如果x是s的元素,结果为True,否则结果为False
x not in s如果x不是s的元素,结果为True,否则结果为False
len(s)序列s中元素的个数(即序列的长度)
max(s)序列s中元素的最大值
min(s)序列s中元素的最小值
s.index(x)序列s中第一次出现元素x的位置
s.count(x)序列s中出现x的总次数

7.组合数据类型----列表

  • 列表 : 是指一系列的按特定顺序排列的元素组成,是Python中内置的可变序列(因为操作列表后,列表的内存地址没变,所以称为可变序列),列表中的元素可以是任意的数据类型。
  • 创建列表 : 

      方式一 : 使用[]直接创建列表:列表名=[element1,element2,..elementN]

      方式二 : 使用内置函数list()创建列表:列表名=list(序列)

# 方式一:
lst1=["pink",12,"hello"]
print(lst1)                # ["pink",12,"hello"]# 方式二:
lst2=list("helloword")
print(lst2)                # ['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'd']
  • 删除列表 : del 列表名
  • 遍历列表 :

       方式一 : 使用for遍历列表元素

       方式二 : 使用for循环,range()函数,len()函数,根据索引进行遍历

       方式三 : 使用enumerate()函数进行遍历

lst=["pink","green","yellow","black"]# 使用循环遍历for遍历列表元素
for item in lst:print(item)# 使用for循环,range()函数,len()函数,根据索引进行遍历
for i in range(0,len(lst)):print(lst[i])# 使用enumerate()函数进行遍历,注:此处的index不是索引,而是序号,可通过start指定序号的起始值,默认值是1
for index,item in enumerate(lst,start=2):print(index,item)
  • 列表的操作方法:
列表的方法描述说明
Ist.append(x)在列表lst最后增加一个元素
Ist.insert(index,x)在列表中第index位置增加一个元素
lst.clear()清除列表lst中所有元素
Ist.pop(index)将列表lst中第index位置的元素取出,并从列表中将其删除
lst.remove(x)将列表lst中出现的第一个元素x删除
Ist.reverse(x)将列表lst中的元素反转
Ist.copy()拷贝列表lst中的所有元素,生成一个新的列表
  • 列表修改 : 列表[索引]=修改值,如:lst[2]="python"
  • 列表排序 : 

      方式一 : 使用列表对象的sort方法:lst.sort(key=None,reverse=False)

          (1)key指定排序规则,如忽略大小写:key=str.lower,转为小写再排序

          (2)reverse指定排序方式,False表示升序,True表示降序,默认升序

          (3)如果排序列表中同时有大小写字母,升序时先排大写,再排小写;降序时,先排小写,再排大写

          (4)sort是在原列表的基础上进行排序,不会产生新的列表对象

       方式二 : 使用内置函数sorted():sorted(lst,key=None,reverse=False)

          (1)sorte排序会产生新的列表对象,原列表不会改变

# sort排序lst=["apple","Banana","strawberry"]lst.sort()print(lst)                          # ['Banana', 'apple', 'strawberry']lst.sort(reverse=True)print(lst)                          # ['strawberry', 'apple', 'Banana']lst.sort(key=str.lower)print(lst)                          # ['apple', 'Banana', 'strawberry']# sorted 排序lst=[43,12,89,66]new_lst=sorted(lst,reverse=True)print(lst)                            # [43, 12, 89, 66]print(new_lst)                        # [89, 66, 43, 12]
  • 列表生成式 : 

           Ist=[expression for item in range]

           Ist=[expression for item in range if condition]

import random
lst=[i for i in range(0,10)]
print(lst)                                              # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
lst=[random.randint(1,100) for _ in range(10,20)]
print(lst)                                              # [92, 83, 50, 76, 63, 16, 89, 36, 75, 46]
lst=[i for i in range(0,10) if i%2==0]
print(lst)                                              # [0, 2, 4, 6, 8]

   for循环生成二维列表:

lst=[["城市","环比","同比"],["北京","102","103"],["上海","104","444"],["深圳","666","888"]
]
for row in lst:for item in row:print(item,end="\t")print()# 结果:
城市	环比	同比	
北京	102	    103	
上海	104	    444	
深圳	666	    888	

8.组合数据类型----元组

  • 元组:元组是Python中内置的不可变序列,在Python中使用()定义元组,元素与元素之间使用英文逗号分隔,元组中只有一个元素的时候,逗号也不能省略
  • 元组创建:

       方式一 : 使用()直接创建元组:元组名=(element1,element2,.....elementN)

       方式二 : 使用内置函数tuple()创建元组:元组名=tuple(序列)

# 使用()直接创建元组
t=(1,"python")
print(t)           # (1, 'pink')# 使用内置函数tuple()创建元组
t=tuple("hello")
print(t)           # ('p', 'i', 'n', 'k')
  • 删除元组 : del元组名
  • 遍历列表 :

       方式一 : 使用for遍历列表元素

       方式二 : 使用for循环,range()函数,len()函数,根据索引进行遍历

       方式三 : 使用enumerate()函数进行遍历

t=("pink","green","yellow","black")# 使用循环遍历for遍历列表元素
for item in t:print(item)# 使用for循环,range()函数,len()函数,根据索引进行遍历
for i in range(0,len(t)):print(t[i])# 使用enumerate()函数进行遍历,注:此处的index不是索引,而是序号,可通过start指定序号的起始值,默认值是1
for index,item in enumerate(t,start=2):print(index,item)
  • 元组和列表的区别:
元组列表
不可变序列可变序列
无法实现添加、删除和修改元素等操作append()、insert()、remove()、pop()等方法实现添加和删除列表元素
支持切片访问元素,不支持修改操作支持切片访问和修改列表中的元素
访问和处理速度快访问和处理速度慢
可以作为字典的键不能作为字典的键

9.组合数据类型----字典

  • 字典:字典是根据一个信息查找另一个信息的方式构成了“键值对”,它表示索引用的键和对应的值构成的成对关系
  • 创建字典:

      方式一 : 使用{}直接创建字典:d={key1:value1,key2:value2...)

      方式二 : 通过映射函数创建字典:dic(zip(lst1,lst2) )

      方式三 : 通过dic直接创建字典:dict(key1=value1,key2=value2..)

      注意 : 字典的键是不可变序列,因此元组可以作为字典的键,列表不能作为字典的键

# 使用{}直接创建字典
d={"color":'gray',"number":12,10:"123"}
print(d)                                  # {'color': 'gray', 'number': 12, 10: '123'}# 通过映射函数创建字典
lst1=["color","number",10]
lst2=["gray",12,"123"]
zipObj=zip(lst1,lst2)
d=dict(zipObj)
print(d)                                  # {'color': 'gray', 'number': 12, 10: '123'}# 通过dic直接创建字典
d=dict(cat=10,dog=20)
print(d)                                  # {'cat': 10, 'dog': 20}
  • 删除字典 : del 字典名
  • 字典元素的取值 : d[key]或d.get(key)
d=dict(cat=10)
print(d["cat"])
print(d.get("cat"))
print(d["dog"])                 # 当key不存在时,使用d[key]会报错
print(d.get("dog","不存在"))    # 当key不存在时,使用d.get(key)不会报错,且可以指定默认值
  • 字典元素的遍历 : 

       方式一 : 遍历出key与value的元组:
                     for element in d.items():
       方式二 : 分别遍历出key和value:
                    for key,value in d.items():

# 字典的遍历
d=dict(cat=10,dog=20)
for item in d.items():print(item)                       # ('cat', 10)# ('dog', 20)for key,value in d.items():print(key,value)                 # cat 10# dog 20
  • 字典的操作方法:
字典的方法描述说明
d.keys()获取所有的key数据
d.values()获取所有的value数据
d.pop(key,default)key存在获取相应的value,同时删除key-value对,否则获取默认值
d.popitem()随机从字典中取出一个key-value对,结果为元组类型,同时将该key-value从字典中删除
d.clear()清空字典中所有的key-value对
  • 字典生成:

        方式一 : d={ key:value for item in range }
        方式二 : d={key:value for key,value in zip(lst1,lst2)}

import random
d= {item: random.randint(1, 100) for item in range(1, 10)}
print(d)                 # {1: 37, 2: 90, 3: 41, 4: 56, 5: 26, 6: 36, 7: 61, 8: 48, 9: 53}lst1=[1001,1002,1003]
lst2=["张三","李四","王五"]
d={key:value for key,value in zip(lst1,lst2)}
print(d)                # {1001: '张三', 1002: '李四', 1003: '王五'}

10.组合数据类型----集合

  • 集合:集合是一个无序的不重复元素序列,集合中只能存储不可变数据类型,与列表、字典一样,都是Python中的可变数据类型
  • 创建集合:

       方式一 : 使用{}直接创建集合:s={element1,element2,......elementN}

       方式二 : 使用内置函数set()创建集合:s=set(可迭代对象)

       注意 : s={}创建的是空字典,而非空集合,set()创建空集合

# 使用{}直接创建集合
s={1,'pink',"张三"}
print(s)             # {1, 'pink', '张三'}# 使用内置函数set()创建集合
s=set("hello")
print(s)             # {'l', 'e', 'h', 'o'}
  • 删除集合:del 集合名
  • 集合操作符:

  • 集合的相关操作:
集合的方法描述说明
s.add(x)如果x不在集合s中,则将x添加到集合s
s.remove(x)如果x在集合中,将其删除,如果不在集合中,程序报错
s.clear()清除集合中所有元素
  • 集合的遍历:

       方式一 : 使用for遍历列表元素

       方式二 : 使用enumerate()函数进行遍历

s={"pink","green","yellow","black"}# 使用循环遍历for遍历列表元素
for item in s:print(item)# 使用enumerate()函数进行遍历,注:此处的index不是索引,而是序号,可通过start指定序号的起始值,默认值是1
for index,item in enumerate(s,start=2):print(index,item)
  • 集合生成:

     s={expression for item in range}

     s={expression for item in range if condition}

# 集合生成
s={i for i in range(1,10)}
print(s)               # {1, 2, 3, 4, 5, 6, 7, 8, 9}s={i for i in range(1,20) if i%2==0}
print(s)               # {2, 4, 6, 8, 10, 12, 14, 16, 18}

11.列表、元组、字典、集合的区别:

数据类型序列类型元素是否可重复是否有序定义符号
列表list可变序列可重复有序[]
元组tuple不可变序列可重复有序()
字典dict可变序列Key不可重复,Value可重复无序{key:value}
集合set可变序列鍘求鍘力可重复无序{}

http://www.xdnf.cn/news/9654.html

相关文章:

  • 制导与导航总述、分类介绍、MATLABdemo
  • PROFIBUS转PROFINET网关:饲料行业的通信桥梁
  • LeetCode 543 二叉树的直径
  • 使用Miniconda管理Python环境
  • MS3494模拟矩阵开关
  • transformer-PositionalEncoding (对数空间计算实现)
  • 行业案例 | OPPO借助Azure AI Speech国际服务实现音频文件智能转录
  • 基于MATLAB的二维圆形随机骨料生成程序
  • APL Photonics封面成果:KAUST用五边形激光腔刷新物理随机数生成极限——800Gb/s!
  • Selenium 测试框架 - JavaScript
  • Xamarin入门笔记(Xamarin已经被MAUI取代)
  • 利益相关者意见分歧,如何决策
  • 在线临床指标分类信息表转甜甜圈矩阵图
  • 将git最后一次提交把涉及到的文件按原来目录结构提取出来
  • LLM中的Loss与Logits详解
  • 【leetcode】206. 反转链表
  • Linux Shellcode开发(Stager Reverse Shell)
  • 简述MySQL优化锁方面你有什么建议?
  • 彰显国产力量|暴雨亮相2025 C3安全峰会
  • Guava限频器RateLimiter的使用示例
  • STM32学习第一课--工程建立(云端备份与自我复盘)
  • ROS2学习(16)------ URDF 机器人建模方法
  • 操作系统 | 第一章:操作系统引论思维导图
  • 解决ssh: connect to host IP port 22: Connection timed out报错(scp传文件指定端口)
  • Java—多线程
  • 如何使用 poetry 创建虚拟环境,VSCode 如何激活使用 Poetry 虚拟环境(VSCode如何配置 Poetry 虚拟环境)
  • MVCC原理解析
  • js 手写promise
  • 专栏更新通知
  • Python 科学计算有哪些提高运算速度的技巧