期末总复习(二)

一、第六章 异常处理

二、第六章 函数

三、数据结构:列表、元组、字典、集合、字符串

    1、列表切片:列表对象[start : end : step]

    2、列表推导式
        列表推导式利用已有列表快速生成满足特定需求的列表。列表推导式在逻辑上相当于一个循环,只是形式更加简洁.
        语法形式:[表达式 for 表达式中的变量 in 已有序列 if 过滤条件]

In [1]:

list_1 = list(range(1,10))
list_1

Out[1]:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

In [2]:

list_1[5:]

Out[2]:

[6, 7, 8, 9]

In [3]:

list_1[:5]

Out[3]:

[1, 2, 3, 4, 5]

In [4]:

list_1[1::2]

Out[4]:

[2, 4, 6, 8]

In [5]:

ls = list(range(10))
for i in range(0,6,3):
    print(ls[i::i+1])
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[3, 7]

In [6]:

ls = list(range(10))
ls

Out[6]:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

In [7]:

for i in range(0,6,3):
    print(i)
0
3

In [8]:

#已知有两个列表 a_lis=[4,10,12,4,9,6,3],b_list=[12,8,5,6,7,10],编写程序实现以下功能
#(1)将两个列表进行合并,合并时删除重复元素,合并结果存放在c_list中:

a_list=[4,10,12,4,9,6,3]
b_list=[12,8,5,6,7,6,10]

d_list=a_list+b_list
#d_list=set(d_list)

c_list=[]
for i in d_list:
    if i not in c_list:
        c_list.append(i)
    
print(c_list)
print(d_list)

#(2)对c_list按照元素的大小进行降序排列,并打印出排非序结果。

c_list.sort(reverse = True)
print(c_list)
[4, 10, 12, 9, 6, 3, 8, 5, 7]
[4, 10, 12, 4, 9, 6, 3, 12, 8, 5, 6, 7, 6, 10]
[12, 10, 9, 8, 7, 6, 5, 4, 3]

In [9]:

#P94_4.4 请编程使用循环和列表推导式两种方法求解百钱买百鸡问题。
#假设大鸡5元一只,中鸡3元一只,小鸡1元三只,现有100元钱想买100只鸡,有多少种买法?
for x in range(100):
    for y in range(100):
        for z in range(100):
            if (x+y+z==100 and 5*x+3*y+z/3==100):
                print('大鸡x=',x)
                print('中鸡z=',z)
                print('小鸡y=',y)
                print('\n')
大鸡x= 0
中鸡z= 75
小鸡y= 25


大鸡x= 4
中鸡z= 78
小鸡y= 18


大鸡x= 8
中鸡z= 81
小鸡y= 11


大鸡x= 12
中鸡z= 84
小鸡y= 4


In [10]:

 #语法形式:[表达式 for 表达式中的变量 in 已有序列 if 过滤条件]
[[x,y,z]for x in range(100)for y in range(100)for z in range(100) if x+y+z==100 and 5*x+3*y+z/3==100]

Out[10]:

[[0, 25, 75], [4, 18, 78], [8, 11, 81], [12, 4, 84]]

四、Numpy科学计算库

    1、数组对象ndarray创建的常用方法:
        (1)等间隔数组:np.arange()
        (2)等差数组:np.linspace()
        (3)等比数组:np.logspace()
        (4)0数组:np.zeros()
        (5)1数组:np.ones()
        (6)空数组:np.empty()
        (7)满数组:np.ful1()所有元素相同
        (8)单位矩阵:np.eye(n,m),对角线元素为1,其余为0
        (9)单位方阵:np.identity (n)

    2、数组的属性
        (1)形状:shape
        (2)大小:size
        (3)维度:ndim
        (4)数据类型:dtype

    3、数组ndarray对象的切片与列表的勺切片相似,参考课本P221和P60(数组与列表的区别)

In [11]:

import numpy as np

In [12]:

#创建:

arr_1 = np.array([1,4,5,6,7])
arr_1

Out[12]:

array([1, 4, 5, 6, 7])

In [13]:

arr_1[3]

Out[13]:

6

In [14]:

arr_2 = np.arange(10)
arr_2

Out[14]:

array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

In [15]:

arr_2.shape

Out[15]:

(10,)

In [16]:

arr_2.size

Out[16]:

10

In [17]:

arr_2.ndim

Out[17]:

1

In [18]:

arr_2.dtype

Out[18]:

dtype('int32')

In [19]:

arr_3 = np.zeros([4,5],dtype = np.int32)
arr_3

Out[19]:

array([[0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0]])

In [20]:

arr_3.shape

Out[20]:

(4, 5)

In [21]:

arr_3.size

Out[21]:

20

In [22]:

arr_3.dtype

Out[22]:

dtype('int32')

In [23]:

arr_4 = np.array([14,45,8,30])
arr_5 = np.zeros((arr_4.size-1)*3-2,dtype = np.int32)
arr_5[::2] = arr_4
arr_5

Out[23]:

array([14,  0, 45,  0,  8,  0, 30])

In [24]:

arr_4.dtype

Out[24]:

dtype('int32')

In [25]:

np.zeros((arr_4.size-1)*3-2)

Out[25]:

array([0., 0., 0., 0., 0., 0., 0.])

五、面向对象编程

        1、类中通常包含一个特殊方法:__init__。它在创建和初始化一个新对象时被系统自动调用,初始化方法用于完成对象的初始化工作,如成员变量赋值等。
        2、类中定义的每个方法都有一个名为self 的参数,该参数必须是方法的第一个参数,self表示当前对象,即指向调用方法的对象。

In [26]:

#P168 例9.1定义一个矩形类,包含两个数据成员(属性参数):宽度和高度;该类提供两种方法(功能函数):求面积和周长
class Rectangle:            #定义一个 Rectangle类
    def __init__(self,width,height):       #定义初始化方法,指定宽度和高度
        self.width = width       #定义宽度属性
        self.height = height       #定义高度属性
        
    def get_area(self):        #定义方法获取矩形的面积
        return self.width * self.height
    
    def get_perimeter (self):       #定义方法获取矩形的周长
        return 2 * (self.width +self.height)
    
rect_1 = Rectangle(3,5)    #创建矩形类的对象
print("矩形的宽度为:",rect_1.width) 
print("矩形的高度为:",rect_1.height)
print("矩形的面积为:",rect_1.get_area())
print("矩形的周长为:",rect_1.get_perimeter())
矩形的宽度为: 3
矩形的高度为: 5
矩形的面积为: 15
矩形的周长为: 16

In [27]:

#如果计算圆
import numpy as np
np.pi
import math
math.pi

Out[27]:

3.141592653589793

六、文件操作

    1、写(w)是指从头开始写,覆盖原有内容;附加也叫追加(a+)是从文件末尾开始写,保留原有内容。
    2、“x+”:写多少覆盖多少,未覆盖部分保留;“w+”:覆盖所有内容,最终为当前写的内容。

In [28]:

with open('../R&Q_pic/test.txt','w+',encoding = 'utf-8') as fw:
    for i in range(10):
        fw.write('学号+姓名')
        
with open('../R&Q_pic/test.txt',encoding = 'utf-8') as fr:
    for line in fr:
        print(line)
学号+姓名学号+姓名学号+姓名学号+姓名学号+姓名学号+姓名学号+姓名学号+姓名学号+姓名学号+姓名

In [32]:

with open('../R&Q_pic/test.txt','r+',encoding = 'utf-8') as fw:
    for i in range(50):
        fw.write('1103')
        
with open('../R&Q_pic/test.txt',encoding = 'utf-8') as fr:
    for line in fr:
        print(line)
1103110311031103110311031103110311031103110311031103110311031103110311031103110311031103110311031103110311031103110311031103110311031103110311031103110311031103110311031103110311031103110311031103110303

1103

1103

1103

1103

1103

1103

1103

1103

1103

1103

1103

1103

1103

1103

1103

continue 与 break 的区别:continue终止小循环,break终止大循环(结束循环)

  • 20
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值