python学习基础第一阶段day07

推倒式:

 列表 推导式:
    			[处理变量 for 变量 in 可迭代对象 if 条件]
字典 推导式:
    			{处理变量 : 处理变量  for 变量 in 可迭代对象 if 条件}
集合 推导式:
    			{处理变量 for 变量 in 可迭代对象 if 条件}
适用性:
   				 根据可迭代对象,构建容器时.
# 需求1:range(10)  --> key:0-9   value: key的平方
dict01 = {item: item ** 2 for item in range(10)}
print(dict01)

# 需求2:range(10)  --> key:0-9   value: key的平方
#        只考虑奇数
dict01 = {item: item ** 2 for item in range(10) if item % 2}
print(dict01)

推导式嵌套

list_fruits = ["香蕉", "苹果", "哈密瓜"]
list_drinks = ["可乐", "雪碧", "牛奶", "咖啡"]
# list_result = []
# for fruit in list_fruits:
#     for drink in list_drinks:
#         list_result.append(fruit + drink)
list_result = [fruit + drink for fruit in list_fruits for drink in list_drinks]
print(list_result)

函数

pycharm快捷键:
				Ctrl + P			参数信息(在方法中调用参数)
				Ctrl + Q			快速查看文档
				Ctrl + Alt + M		提取方法
定义
		 1. 用于封装一个特定的功能,表示一个功能或者行为。
		2. 函数是可以重复执行的语句块, 可以重复调用。
作用
		提高代码的可重用性和可维护性(代码层次结构更清晰)。
定义函数
		1. 语法:
				def 函数名(形式参数):
					 函数体
		 2. 说明:
				def 关键字:全称是define,意为”定义”。
	函数名:对函数体中语句的描述,规则与变量名相同。
	形式参数:方法定义者要求调用者提供的信息。
	函数体:完成该功能的语句。
3. 函数的第一行语句建议使用文档字符串描述函数的功能与参数。
					调用函数
		 1. 语法:函数名(实际参数) 
		 2. 说明:根据形参传递内容。
返回值
		1. 定义:
				方法定义者告诉调用者的结果。
		2. 语法:
				return 数据 
		3. 说明:
				return后没有语句,相当于返回 None。
				函数体没有return,相当于返回None。

创建函数

def attack():
“”"
攻击
“”"
print(“直拳”)
print(“勾拳”)
print(“侧踹”)

参数:调用者 给 创建者 传递的信息

创建者 要求 调用者 提供的信息

def attack_repeat(count): # 形式参数
“”"
重复攻击
:param count: int类型的 攻击次数
“”"
for __ in range(count):
attack()

调用函数

attack()
attack_repeat(3) # 实际参数
attack_repeat(10)

函数返回值
    语法

 函数创建者 给 调用者 传递的结果

def func01():
print(“func01执行喽~”)
return 100 # return 数据

re = func01()

print(re)

def func02():
print(“func02执行喽~”)
# return # return后没有数据或者没有return ,默认为None

re = func02()
print(re)

def func03():
print(“func03执行喽~”)
return # 退出函数
print(“func03又执行喽~”)

func03()

函数返回值
    应用

设计思想:小而精

需求:定义函数,两个数值相加.

def add(number01,number02):
“”"
两个数值相加
:param number01: 数值1
:param number02: 数值2
:return:数值类型,相加的结果
“”"
result = number01 + number02
return result

测试

n1 = float(input(“请输入第一个数字:”))
n2 = float(input(“请输入第二个数字:”))
re = add(n1,n2)
print(“结果是:”+str(re))

练习1:

# 练习1:["齐天大圣","八戒","唐三藏"]-->key:字符  vlaue:字符长度
#      {"齐天大圣":4,"八戒":2,"唐三藏":3}
list_names = ["齐天大圣", "八戒", "唐三藏"]
dict_names = {item: len(item) for item in list_names}
print(dict_names)

# 练习2:["张无忌","赵敏","周芷若"] [101,102,103]
#      {"张无忌":101,"赵敏":102,"周芷若":103}
list_names = ["张无忌", "赵敏", "周芷若"]
list_rooms = [101, 102, 103]
dict_infos = {list_names[i]: list_rooms[i] for i in range(len(list_names))}
print(dict_infos)

# 练习3:将练习2的字典,key 与 value 颠倒
#       {101:"张无忌",102:"赵敏",103:"周芷若"}
dict_infos2 = {v: k for k, v in dict_infos.items()}
print(dict_infos2)

练习2:

"""
    4行5列
    *****
    #####
    *****
    #####
"""
for r in range(4):
    for c in range(5):
        if r % 2 != 0:
            print("*", end="")
        else:
            print("#", end="")
    print()

for r in range(4):
    for c in range(5):
        if c % 2 != 0:
            print("*", end="")
        else:
            print("#", end="")
    print()

练习3:

"""
    for for 练习
"""
# 二维列表
list01 = [
    [1, 2, 3, 4],
    [5, 6, 7, 8],
    [9, 10, 11, 12],
]
# -- 打印第三行第二列数据      [行索引][列索引]
print(list01[2][1])

# -- 从右向左,打印第二行数据(一行一个)
for i in range(len(list01[1]) - 1, -1, -1):
    print(list01[1][i])

# -- 从上向下,打印第三列数据(一行一个)
# [0][2] [1][2] [2][2]
for i in range(len(list01)):
    print(list01[i][2])

# -- 将二维列表以表格状打印出来
# 1 2 3 4
# for r in range(len(list01)):
#     for c in range(len(list01[r])):
#         print(list01[r][c],end = " ")
#     print()

for line in list01:
    for item in line:
        print(item, end=" ")
    print()

练习4:

"""
    矩阵转置
        算法:将list01中每列,存储到list02中每行
"""
list01 = [
    [1, 2, 3, 4],
    [5, 6, 7, 8],
    [9, 10, 11, 12],
]

list02 = []
# list01[0][0]
# list01[1][0]
# list01[2][0]

for c in range(len(list01[0])):
    line = []
    for r in range(len(list01)):
        line.append(list01[r][c])
    list02.append(line)

print(list02)

练习5:

"""
    思想:
        讲第一个元素,与后面元素进行比较
            二
            三
            ...

"""
list01 = [4, 54, 5, 6, 7, 8, 3]
for r in range(len(list01) - 1):
    for c in range(r + 1, len(list01)):
        if list01[r] > list01[c]:
            list01[r], list01[c] = list01[c], list01[r]
print(list01)

练习6:

"""
    list01=[34,8,56,9,8,9]
    判断列表中是否具有相同元素 True   Flase
    思想:
        讲第一个元素,与后面元素进行比较,发现相同则打印结论
            二
            三
            ...
        如果所有元素比较后,也没有发现相同,则打印结论
"""
list01 = [34, 8, 56, 9, 8, 9]
result = False
for r in range(len(list01) - 1):
    for c in range(r + 1, len(list01)):
        if list01[r] == list01[c]:
            result=True
            break
    if result:
        break
print(result)

练习7:

"""
    list01 = [34, 8, 56, 9, 8, 9]
    删除列表中相同元素(重复元素只保留一个)
    不使用集合
    算法:
        从后向前判断,如果相同元素(从前向后判断),则删除后面元素
"""
list01 = [34, 8, 56, 9, 8, 9]
for r in range(len(list01) - 1, -1, -1):
    for c in range(r):
        if list01[r] == list01[c]:
            del list01[r]
            break # 如果删除了后面元素,则无需继续用当前元素比较了 h
print(list01)

练习8:

"""
    在终端中打印
    list01=[43,4,5,78]
    list02=[76,6,579]
"""


def print_list(list_target):
    """
    打印列表,将列表每个元素打印在终端中(一行一个)
    :param list_target:
    :return:
    """
    for item in list_target:
        print(item)


list01 = [43, 4, 5, 78]
list02 = [76, 6, 579]

print_list(list01)
print_list(list02)

练习9:

"""
    3. 在终端中获取一个矩形边长,打印矩形。
       例如:4
       ****
       *  *
       *  *
       ****
       例如:6
       ******
       *    *
       *    *
       *    *
       *    *
       ******
       定义函数,在终端中根据边长打印矩形
"""


def rectangle(border, char):
    """
        打印矩形
    :param border: int类型   边长
    :return:
    """
    print(char * border)
    for __ in range(border - 2):
        print(char + " " * (border - 2) + char)
    print(char * border)


rectangle(6,"$")

练习10:

"""
    练习:
        获取一个任意数      123456
        输出每位相加和      1+2+3+4+5+6+.....
"""


def each_unit_sum(number):
    """
        每位相加
    :param number: 任意数
    :return: 相加和
    """
    h = 0
    for item in str(number):
        h += int(item)
    return h

re = each_unit_sum(123565)
print(re)

练习11:

"""
    练习:
        获取成绩
        判断等级(优秀  良好  及格  不及格   不在范围内0-100 )

"""


def calculate_score_levelresult(result):
    if result < 0 or result > 100:
        return "不在范围内"
    if result < 60:
        return "不及格"
    if result < 80:
        return "及格"
    if result < 90:
        return "良好"
    return "优秀"


result = int(input("请输入一个成绩:"))
re = calculate_score_levelresult(result)
print(re)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值