python训练营Day1打卡

@浙大疏锦行

Debugger工具使用与环境配置

debuger要求环境为3.8以上这里重新安装一下anaconda环境

conda create -n kk python=3.8
conda activate kk
pip install pywinpty --only-binary=:all: 
pip install jupyter -i https://mirrors.aliyun.com/pypi/simple
pip install scikit-learn  -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install numpy scipy pandas seaborn matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install lightgbm xgboost  -i https://pypi.tuna.tsinghua.edu.cn/simple

任务一:了解变量和输出

知识点:

  1. 变量的命名和定义

  2. debug工具的使用(pycharm和vscode)

  3. print函数

  • 题目: 定义三个变量 a, b, c,并分别将整数 1, 2, 3 赋值给它们。然后,使用 print() 函数将每个变量的值单独打印出来,每个值占一行。
  • 输入:
  • 输出:
    1
    2
    3
    a=1
    b=1
    c=1
    #法一
    print(a)
    print(b)
    print(c)
    #法二
    a=1,b=2,c=3
    print(a,b,c)
    print()
    #法三
    a,b,c=1,2,3
    print(a, b, c, sep='\n')  # 用换行符作为分隔符

进阶思考:

如何只用 一个 print() 函数调用就实现上面分三行的输出效果?(提示:换行符 \n
也即法三的方法

任务二:格式化字符串 

  • 题目: 创建两个变量:name 存储你的名字(字符串,例如 "小明"),city 存储你所在的城市(字符串,例如 "北京")。使用 f-string 将这两个变量组合成一句话并打印出来。
  • 输入:
  • 输出: (请注意输出格式中的逗号和空格)
    姓名: 小明, 城市: 北京
#法一
name = "小明"
city = "北京"
print(f"我的名字是{name},我住在{city}。")

进阶思考:

  • 如果想在输出的姓名两边加上引号,例如 姓名: "小明", 城市: 北京,f-string 语句应该怎么写?
  • 只用一个 print() 和 f-string,如何让姓名和城市分两行输出?

 

若要在姓名两侧加上引号,则用到单双引号嵌套

# 姓名两侧加上引号如何写?
name = "小明"
city = "北京"
print(f'姓名: "{name}", 城市: {city}')
#法二
print(f'姓名: "{name}"\n城市: {city}')

 法一输出为:
        姓名: "小明", 城市: 北京

法二输出为:
        姓名: "小明"
        城市: 北京

任务三:变量的基础运算

  • 题目一: 定义两个整数变量,num1 赋值为 20num2 赋值为 8。计算这两个变量的和,并将结果存储在一个新的变量 a 中;计算这两个变量的商,叫做b;计算这两个变量的余数,叫做c。然后,使用 f-string 打印出类似 “20 加 8 的结果是:28” 的信息,分成三行打印。

代码: 

## 变量的基础运算
num1 = 20
num2 = 8

a = num1 + num2  # 计算和
b = num1 / num2  # 计算商
c = num1 % num2  # 计算余数

# 使用f-string分三行打印结果
print(f"{num1} 加 {num2} 的结果是:{a}")
print(f"{num1} 除以 {num2} 的商是:{b}") 
print(f"{num1} 除以 {num2} 的余数是:{c}")

输出 :

20 加 8 的结果是:28
20 除以 8 的商是:2.5
20 除以 8 的余数是:4

拓展1:此处的f意思是什么?

        在 Python 中, f 是在字符串前的前缀,带有 f 前缀的字符串被称为 f-string (格式化字符串字面值,Formatted String Literals),从 Python 3.6 版本开始引入。f-string 提供了一种简洁且直观的方式来将变量值插入到字符串中。

        ### 基本语法
        在字符串前加上 f 或者 F ,然后在字符串里使用大括号 {} 包裹变量名或者表达式,Python 会在运行时把大括号内的内容替换为对应的变量值或者表达式的计算结果。

        ### 代码解释
        以 print(f"{a}\n{b}\n{c}") 为例:

        - f 前缀表明这是一个 f-string。
        - {a} 、 {b} 和 {c} 是占位符,Python 会把它们分别替换为变量 a 、 b 和 c 的实际值。
        - \n 是换行符,用于在输出时进行换行操作。

        ### 优点
        - 简洁性 :相比传统的字符串格式化方法(如 % 格式化和 str.format() 方法),f-string 的语法更加简洁直观。
        - 可读性 :变量名直接嵌入在字符串中,使得代码的意图更加清晰。
        - 高效性 :f-string 在运行时进行求值,性能上通常优于其他格式化方法。

题目二: 定义两个浮点数变量,price 赋值为 19.9,discount 赋值为 0.8 (表示 8 折)。计算折扣后的价格,并将结果存储在变量 final_price 中;计算节省了多少钱,存储在变量 saved_amount 中。然后,使用 f-string 分两行打印出类似以下格式的信息:

最终价格是: 15.92

节省金额是: 3.98

代码:

price = 19.9
discount = 0.8

final_price = price * discount  # 计算折扣后价格
saved_amount = price - final_price  # 计算节省金额

# 使用f-string分两行打印结果
print(f"最终价格是: {final_price:.2f}")
print(f"节省金额是: {saved_amount:.2f}")

 输出:

最终价格是: 15.92
节省金额是: 3.98

 拓展题目一:复杂数据结构的格式化输出
        定义一个嵌套字典,用于存储一个班级学生的信息。每个学生有姓名、年龄、成绩(数学、英语、语文)。使用一个 print 函数和 f-string 分多行输出每个学生的详细信息,包括总分和平均分,并且格式化输出结果,保留两位小数。 

代码:

students = {
    "001": {
        "name": "Alice",
        "age": 18,
        "scores": {
            "math": 85,
            "english": 90,
            "chinese": 88
        }
    },
    "002": {
        "name": "Bob",
        "age": 17,
        "scores": {
            "math": 92,
            "english": 87,
            "chinese": 95
        }
    }
}

输出:

学生编号: 001
姓名: Alice
年龄: 18
数学成绩: 85
英语成绩: 90
语文成绩: 88
总分: 263.00
平均分: 87.67

学生编号: 002
姓名: Bob
年龄: 17
数学成绩: 92
英语成绩: 87
语文成绩: 95
总分: 274.00
平均分: 91.33

拓展题目二:动态生成表格并输出 

        定义两个列表,一个存储列名,另一个存储多行数据。使用一个 print 函数和 f-string 输出一个格式化的表格。表格需要有表头,每列宽度固定,数据需要居中对齐。 

代码:

headers = ["姓名", "年龄", "职业"]
data = [
    ["Alice", 25, "工程师"],
    ["Bob", 30, "设计师"],
    ["Charlie", 22, "学生"]
]

 输出:

|  姓名  |  年龄  |  职业  |
|--------|--------|--------|
| Alice  |   25   | 工程师 |
| Bob    |   30   | 设计师 |
| Charlie|   22   |  学生  |

你可能感兴趣的:(python训练营打卡,python)