Python基础知识梳理


变量与赋值语句

  • 简单赋值用于为一个变量赋值。

  • 序列赋值可以一次性为多个变量赋值。

  • 多目标赋值指用连续的多个等号将同一个数据赋值给多个变量。

  • 增强赋值指将运算符与赋值相结合的赋值语句

 

# 简单赋值
num = 100  # 100


# 序列赋值
x, y = 1, 2  # 1, 2
(x2, y2) = 10, 20  # 10, 20
[x3, y3] = 'ab'  # a, b
((x4, y4), z4) = 'ab', 'cd'  # a, b, cd
x5, *y5 = 'abcd'  # a, ['b', 'c', 'd']
*x6, y6 = [1, 2, 3, 'abc']  # [1, 2, 3], abc


# 多目标赋值
a = b = c = 10  # 将10 分别赋值给变量 a、b、c


# 增强赋值 
i = 10
i += 10  # 20

 

程序结构

通常,程序结构分为3种:顺序结构分支结构循环结构

  • 程序中的语句按照先后顺序依次执行各条语句,程序默认为顺序结构

  • Python使用if语句实现程序的分支结构;Python还有一种特殊的三元表达式语法:表达式1 if 条件表达式 else 表达式2

  • Python使用for语句和while语句实现循环结构;循环中还可以使用breakcontinuepass来完成循环控制

 

例题:

编程实现任何一个列表中的每个数字进行奇偶数分类,用for循环和while循环分别定义一个函数实现。

并随机生成一串正整数(不允许定随机种子),检验函数正确。

比如:生成的是vec = [36, 17 ,22, 93, 88, 63],得到even =[36,22,88], odd=[17,93,63]。

 

import random
import numpy as np

# 用for循环进行奇偶数分类
def f1(array):
    list1 = []
    list2 = []
    for i in range(len(array)):
        if(array[i] % 2 == 0):
            list2.append(array[i])
        else:
            list1.append(array[i])

    return list1, list2


#用while循环进行奇偶数分类
def f2(array):
    list1 = []
    list2 = []
    t = len(array)
    while(t):
        t = t - 1
        if(array[t] % 2 == 0):
            list2.append(array[t])
        else:
            list1.append(array[t])

    return list1, list2


n = input("请输入列表长度n=")
n = int(n)
random_int_list = []
for i in range(n):
    random_int_list.append(random.randint(0, 1000))

array = np.array(random_int_list)

list1, list2 = f1(array)
print("生成的序列:", random_int_list)
print("奇数序列:", list1)
print("偶数序列:", list2)

 

数据结构

Python中,数字和字符串属于简单数据类型。集合、列表、元组、字典和范围等均属于组合数据类型。组合数据类型的对象是一个数组容器,可以包含多个有序或无序的数据项。

  • 集合(set)是Python 2.4引入的一种类型,集合常量用大括号表示,例如,{1,2,3}。集合中的元素具有唯一、无序和不可改变等特点,集合支持数学理论中的各种集合运算。

  • 列表和元组都属于序列,序列支持索引、分片和合并等操作。字符串属于特殊的不可变序列。

  • 元组可以看作是不可变的列表,它的使用与字符串类似。元组常量用圆括号表示,例如:(1,2)('a','b','c'),也可以使用tuple()方法来创建元组对象。

  • 字典是一种无序的映射集合,包含一系列的键:值对。字典常量用大括号表示,例如,{'name':'John','age':25,'sex':'male'},也可以使用dict()函数来创建。

 

# 重复值的集合声明
set1 = {1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4}
print(len(set1))  # 求长度:计算集合中元素的个数  4 
print('a' in set1)  # 判断包含:判断集合是否包括数据  True

# Python3.0引入的集合解析构造方法
set2 = {item for item in [1, 2, 3, 4]}
# 集合对象支持求长度、判断包含、求差集、并集、交集、对称差和比较等运算
print(set1 - set2)  # 求差集:用属于set1但不属于set2的元素创建新集合  {2, 'bc'}
print(set1 | set2)  # 求并集:用set1、set2两个集合中的所有元素创建新集合  {1, 2, 5, 'a', 'bc'}
print(set1 & set2)  # 求交集:用同时属于set1和set2的元素创建新集合  {1, 'a'}


# 列表切片操作
list1 = list(range(10)) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list1[2:5])      # [2, 3, 4]
print(list1[2:])       # [2, 3, 4, 5, 6, 7, 8, 9]
print(list1[:5])       # [0, 1, 2, 3, 4]
print(list1[3:10:2])   # [3, 5, 7, 9]
print(list1[10:3:-2])  # [9, 7, 5]

# 列表常用方法
list2 = [1, 3, 3, 7, 5]
list2.append(5)  # 追加
list2.remove(7)  # 移除指定元素
list2.pop(0)  # 按索引位置删除
list2.sort()  # 升序排序
list2.reverse()  # 反转


# 创建元组
print((2,))  # 包含一个对象的元组,不能缺少逗号  (2,)
print(tuple('abcde'))  # 参数为可迭代对象  ('a', 'b', 'c', 'd', 'e')
print(tuple(item * 2 for item in range(5)))  # 使用解析结构创建元组  (0, 2, 4, 6, 8)

# 元组常用方法
print(len((1, 2, 3, 4, 5)))  # 求长度
print((1, 2) * 3)   # 重复
print(t3.count(1))  # 统计指定值出现的次数,如果不包含指定值时,返回0
print(t3.index(2))  # 查找指定范围内元素所在的索引

# 索引和分片
t2 = tuple(range(10))  # (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
print(t2[1])           # 1
print(t2[-1])          # 9
print(t2[2:5])         # (2, 3, 4)
print(t2[1:7:2])       # (1, 3, 5)


# 创建字典
dict1 = {'name': 'John', 'age': 25, 'sex': 'male'}  # 字典常量
dict2 = {'book': {'Python编程': 100, 'C++入门': 99}}  # 嵌套字典
dict3 = dict(name='Tom', age=25)  # 使用赋值格式的“键:值”对创建字典 {'name': 'Tom', 'age': 25}

# 字典常用方法
dict1['name'] = 'tom'  # 通过索引修改映射值
dict1.update(name='jim')  # update()方法用于为字典添加键值对,若字典已存在同名的键,则该键的映射值被覆盖
print(dict1['name'])  # 根据key获取value
print(dict1.get('name', 'default'))  # 返回键 key映射的值, 如果键key不存在,返回默认值
print(dict1.pop('name', 'default'))  # 从字典中删除键值对,并返回被删除的映射值。若键不存在,则返回default
print(dict1.items())  # 返回键值对视图,视图对象支持迭代操作
print(dict1.keys())   # 返回字典中所有键的视图
print(dict1.values())  # 返回字典中全部值的视图

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/289493.html

(0)
上一篇 2022年9月14日
下一篇 2022年9月14日

相关推荐

发表回复

登录后才能评论