day 9

2018-10-11  本文已影响0人  13147abc

浅拷贝和深拷贝

import copy
a = 100
b = a
b = 200

a = [1, 2]
b = a.copy()
b.append(3)
print(a)
a1 = [1, 2]
a2 = {'a': 10}
list1 = [a1, a2]

# 浅拷贝
# list2 = list1.copy()
list2 = copy.copy(list1)
# 深拷贝
# list2 = copy.deepcopy(list1)
list2.append(1)
print(list2)#[[1, 2], {'a': 10}, 1]
print(list1)#[[1, 2], {'a': 10}]

list2[0].append(100)
print(list2)#[[1, 2, 100], {'a': 10}, 1]
print(list1)#[[1, 2, 100], {'a': 10}]

字典和列表的应用

1.列表中有字典

persons = [
    {'name': '张三', 'age': 30, 'sex': '男'},
    {'name': '李四', 'age': 58, 'sex': '女'},
    {'name': '王五', 'age': 40, 'sex': '男'}
]
# print(persons)
# print(persons[1])
# print(persons[1]['name'])
person = persons[1]
print(person)#{'name': '李四', 'age': 58, 'sex': '女'}
name = person['name']
print(name)#李四

#找出person中最大年龄对应的名字

max1 = 0   # 当前最大的年龄
name = ''  # 当前最大年龄对应的名字
for item in persons:
    age = item['age']
    if age > max1:
        max1 = age
        name = item['name']

print(max1, name)#58 李四

2.字典中有列表

#写一个程序保存一个班级的信息,包含班级名,位置,所有学生(学生中需要保存名字,年龄和学校)

my_class = {
    'class_name': 'python1807',
    'location': '18-6',
    'all_students': [
        {'name': '小花', 'age': 18, 'school': '清华'},
        {'name': '小红', 'age': 19, 'school': '北大'},
        {'name': '小明', 'age': 20, 'school': '川大'}
    ]
}
print(my_class['all_students'][0]['school'])#清华

#删除班级中年龄小于20岁的学生

# 取出所有学生
all_student = my_class['all_students']
index = 0
while index < len(all_student):
    student = all_student[index]
    if student['age'] < 20:
        del all_student[index]
        continue
    index += 1
print(my_class)

函数的声明

# 写一个函数,打印两个数的和

def yt_sum(num1, num2):
    print(num1 + num2)
yt_sum(10, 20)
yt_sum(100, 200)

# 写一个函数,打印5个'*'

def print_star():
    print('*'*5)
print_star()

# 写一个函数,打印n个'*'

def print_star2(n):
    print('*'*n)


print_star2(10)
print_star2(20)

# 练习:写一个函数,计算1+2+...+n的和

def yt_sum2(n):
    sum1 = 0
    for x in range(1, n+1):
        sum1 += x
    print(sum1)
yt_sum2(100)

函数的调用

def sum2(num1, num2):
    # num1 = 10, num2 = 20
    print(num1 + num2)
sum2(10, 20)

函数的参数

1.位置参数和关键字参数

def func1(a, b, c):
    print('a:', a, 'b:', b, 'c:', c)
# 位置参数
func1(10, 20, 30)
# 关键字参数
func1(c=300, a=200, b=100)

2.默认参数

def func2(a, c, b=0):

    print('a:', a, 'b:', b, 'c:', c)


# a=10  c=20
func2(10, 20)
# a=100 c=200 b=300
func2(100, 200, 300)


def func3(a=10, c=30, b=20):

    print('a:', a, 'b:', b, 'c:', c)


func3(a=100, b=200)
func3(100, b=200)

3.不定长参数

# 写一个函数,计算多个数的和

def my_sum(*nums):
    print(sum(nums))

my_sum()
my_sum(1)
my_sum(1, 2)
my_sum(1, 2, 3, 4)

def func4(name, age, *scores):
    print(scores, name, age)

func4('小花', 18, 90, 29, 89)

函数的返回值

def func1():
    print('hello python!')
    print('abcc')
    for x in range(10):
        print(x)


# 将返回值赋给一个变量
re = func1()
print(re)

# 直接打印返回值
print(func1())

# 将返回值作为列表的元素
list1 = [func1(), 1]
print(list1)
def func2():
    print('=====')
    print('!!!!!')
    return 100
    print('*****')


re = func2()
print(re)
def func3(n):
    if n % 2:
        return '是奇数'


print(func3(4))   # None
print(func3(5))   # '是奇数'

#写一个函数,功能是计算一个数的阶乘

def jie_ceng(num):
    sum1 = 1
    for x in range(1, num+1):
        sum1 *= x

    return sum1


re = jie_ceng(10)
print(re)
print('===%d===' % re)
list1 = [re, re]
print(list1)
上一篇下一篇

猜你喜欢

热点阅读