复习
了解变量和输出
不要重复造轮子
知识点:
1.变量的命名和定义
2.debug工具的使用(pycharm和vscode)
3.print函数
●题目: 定义三个变量 a, b, c,并分别将整数 1, 2, 3 赋值给它们。然后,使用 print() 函数将每个变量的值单独打印出来,每个值占一行。
●输入: 无
●输出:
如何只用 一个 print() 函数调用就实现上面分三行的输出效果?
a,b,c=1,2,3
print(a,b,c,sep='\n')
●题目: 创建两个变量:name 存储你的名字(字符串,例如 "小明"),city 存储你所在的城市(字符串,例如 "北京")。使用 f-string 将这两个变量组合成一句话并打印出来。
●输入: 无
●输出: (请注意输出格式中的逗号和空格)
●如果想在输出的姓名两边加上引号,例如 姓名: "小明", 城市: 北京,f-string 语句应该怎么写?
●只用一个 print() 和 f-string,如何让姓名和城市分两行输出?
name,city='小明','北京'
print(f'{name}住在{city}')
print(f'“{name}"住在"{city}"')
print(f'{name}\n{city}')
●题目: 定义两个整数变量,num1 赋值为 20,num2 赋值为 8。计算这两个变量的和,并将结果存储在一个新的变量 a 中;计算这两个变量的商,叫做b;计算这两个变量的余数,叫做c。然后,使用 f-string 打印出类似 “20 加 8 的结果是:28” 的信息,分成三行打印。
num1,num2=20,8
a,b,c=num1+num2,num1/num2,num1%num2
print(f'20加8的结果是:{a}\n20除以8的结果是{b}\n20除以8的余数是{c}')
题目: 定义两个浮点数变量,price 赋值为 19.9,discount 赋值为 0.8 (表示 8 折)。计算折扣后的价格,并将结果存储在变量 final_price 中;计算节省了多少钱,存储在变量 saved_amount 中。然后,使用 f-string 分两行打印出类似以下格式的信息:
最终价格是: 15.92
节省金额是: 3.98
price,discount=19.9,0.8
final_price,save_amount=price*discount,price*(1-discount)
print(f'最终价格是:{final_price}\n节约金额是:{save_amount}')
如果想把节约金额保留三位小数,应该如何操作?
若要让节约金额保留三位小数,你可以在 f-string 里使用格式化说明符 `.3f`。以下是修改后的代码:
```python:/Users/renfeiyang/Desktop/Python60DaysChallenge-main/DAY2.ipynb
# ... existing code ...
print(f'最终价格是:{final_price}\n节约金额是:{save_amount:.3f}')
# ... existing code ...
```
在这个修改后的代码中,`{save_amount:.3f}` 会把 `save_amount` 这个浮点数格式化为保留三位小数的形式。
price,discount=19.9,0.8
final_price,save_amount=price*discount,price*(1-discount)
print(f'最终价格为:{final_price}\n节约金额为:{save_amount:.3f}')
字符串的操作
题目: 定义两个字符串变量,str1 赋值为 “Hello”,str2 赋值为 “Python”。将这两个字符串拼接起来(中间加一个空格),并将结果存储在变量 greeting 中;计算 greeting 字符串的长度,存储在变量 length 中;获取 greeting 字符串的第一个字符,存储在变量 first_char 中。然后,使用 f-string 分三行打印出类似以下格式的信息:
拼接结果: Hello Python
字符串长度: 12
第一个字符: H
第二个字符:e
最后一个字符是:n
str1,str2="Hello",'python'
greeting=str1+" "+str2
length=len(greeting)
first_char=greeting[0]
second_char=greeting[1]
last_char=greeting[-1]
print(f'拼接结果:{greeting}\n字符串长度:{length}\n第一个字符:{first_char}\n第二个字符:{second_char}\n最后一个字符:{last_char}')
比较运算
题目: 定义两个整数变量,score_a 赋值为 75,score_b 赋值为 90。比较 score_a 是否大于 score_b,将比较结果(布尔值)存储在变量 is_a_higher 中;比较 score_a 是否小于等于 score_b,将结果存储在变量 is_a_lower_or_equal 中;比较 score_a 是否不等于 score_b,将结果存储在变量 is_different 中。然后,使用 f-string 分三行打印出类似以下格式的信息:
75 是否大于 90: False
75 是否小于等于 90: True
75 是否不等于 90: True
score_a,score_b=75,90
is_a_higher=score_a>score_b
is_a_lower_or_equal=score_a<=score_b
is_different=score_a!=score_b
print(f'75是否大于90:{is_a_higher}\n75是否小于等于90:{is_a_lower_or_equal}\n75是否不等于90:{is_different}')
列表的基础操作
题目:
1.创建一个包含三个字符串元素的列表 tech_list,元素分别为 “Python”, “Java”, “Go”。
2.获取列表中的第一个元素,并将其存储在变量 first_tech 中。
3.向 tech_list 的末尾添加一个新的字符串元素 “JavaScript”。
4.修改 tech_list 中的第二个元素(索引为 1),将其从 “Java” 更改为 “Ruby”。在列表第一个位置插入元素“c++"
5.移除列表中的元素 “Go”。
6.计算当前 tech_list 的长度,并将结果存储在变量 current_length 中。
7.最后,使用 f-string 分三行打印出以下信息:
a.获取到的第一个技术名称。
b.列表当前的长度。
c.经过所有操作后,列表最终的内容。
打印格式应类似:
第一个技术是: Python
当前列表长度: 3
最终列表内容: [‘Python’, ‘Ruby’, ‘JavaScript’]
tech_list=['python','java','go']
first_tech=tech_list[0]
tech_list.append('javascript')
tech_list[1]='ruby'
tech_list.insert(0,'c++')
tech_list.remove('go')
current_length=len(tech_list)
print(f'第一个技术是:{tech_list[0]}\n当前列表长度:{current_length}\n{tech_list}')
循环for语句
计算1+100的和 用for循环来写
total=0
for i in range(1,101):
total=total+i
print(total)
判断语句
温度预警系统
1. 定义一个变量temperature存储当前温度(整数)
2. 根据以下条件判断并打印预警信息:
- 高于35度:打印"红色预警:高温天气!"
- 28-35度:打印"黄色预警:天气炎热"
- 20-27度:打印"绿色提示:适宜温度"
- 低于20度:打印"蓝色预警:注意保暖"
3. 使用if-elif-else结构实现
4. 测试用例:用38你的代码
temperature=42
if temperature>35:
print('红色预警:高温天气!')
elif 28<=temperature<=35:
print('黄色预警:天气炎热')
elif 20<=temperature<=27:
print('绿色提示:适宜温度')
else:
print('蓝色预警:注意保暖')
1.定义一个包含整数的列表 scores,赋值为 [85, 92, 78, 65, 95, 88]。
2.初始化两个变量:excellent_count 用于记录分数大于等于 90 的个数,初始值为 0;total_score 用于累加所有分数,初始值为 0。
3.使用 for 循环遍历 scores 列表中的每一个分数。
4.在循环内部:
a.将当前分数累加到 total_score 变量上。
b.使用 if 语句判断当前分数是否大于等于 90。如果是,则将 excellent_count 变量加 1。
5.循环结束后,计算平均分 average_score(总分除以分数的个数)。
6.使用 f-string 分三行打印出以下信息:
7.优秀分数(>=90)的个数。
8.所有分数的总和。
9.所有分数的平均分(结果包含3位小数)。
打印格式应类似:
优秀分数个数: 3
分数总和: 503
平均分数: 83.833
scores_list=[85,92,78,65,95,88]
excellent_count=0
total_score=0
excellent_total_score=0
for score in scores_list:
total_score=total_score+socre
if score>=90:
excellent_count=excellent_count+1
excellent_total_score=excellent_total_score+score
average_score=total_score/len(scores_list)
if excellent_count!=0:
average_excellent_score=excellent_total_score/excellent_count
else:
excellent_total_score,average_excellent_score=0,0
print(f'优秀分数个数为:{excellent_count}\n优秀分数总分为:{excellent_total_score}\n优秀分数平均分为:{average_excellent_score}\n总体分数总和为:{total_score}\n总体平均分数为:{average_score}')
二次复习:1.定义一个包含整数的列表 scores,赋值为 [85, 92, 78, 65, 95, 88]。
2.初始化两个变量:excellent_count 用于记录分数大于等于 90 的个数,初始值为 0;total_score 用于累加所有分数,初始值为 0。
3.使用 for 循环遍历 scores 列表中的每一个分数。
4.在循环内部:
a.将当前分数累加到 total_score 变量上。
b.使用 if 语句判断当前分数是否大于等于 90。如果是,则将 excellent_count 变量加 1。
5.循环结束后,计算平均分 average_score(总分除以分数的个数)。
6.使用 f-string 分三行打印出以下信息:
7.优秀分数(>=90)的个数。
8.所有分数的总和。
9.所有分数的平均分(结果包含3位小数)。
打印格式应类似:
优秀分数个数: 3
分数总和: 503
平均分数: 83.833
scores=[85,92,78,65,95,88]
excellent_count=0
excellent_total_score=0
excellent_average_score=0
total_socre=0
average_score=0
for score in scores:
if score >=90:
excellent_count=excellent_count+1
excellent_total_score=excellent_total_score+score
average_score=total_score/len(scores)
if excellent_count!=0:
excellent_average_score=excellent_total_score/excellent_count
else:
excellent_average_score=0
excellent_total_score=0
print(f'优秀分数个数:{excellent_count}\n优秀分数平均分:{excellent_average_score}\n优秀分数总分:{excellent_total_score}\n总体分数总和:{total_score}\n总体平均分数:{excellent_average_score}')
# DAY 4 认识pandas
pip install pandas
import pandas as pd
data = pd.read_csv(r'data.csv')
type(data)
data.isnull()
data.head(10)
pip install openpyxl
data2=pd.read_excel(r'data.xlsx')
data2.head(10)
此时data是一个dataframe类型的对象,可以理解为dataframe类的实例。实例就具有类的属性和方法。
1. 属性的调用格式为:实例名.属性名。
2. 方法的调用格式为:实例名.方法名()。
data.info()
data.shape
data.columns
data.describe()
data['Annual Income'].dtype
data['Annual Income'].isnull().sum()
data['Annual Income']
median_income=data['Annual Income'].median()
data['Annual Income'].fillna(median_income,inplace=True)
data['Annual Income'].isnull().sum()
import pandas as pd
data=pd.read_csv('data.csv')
mode=data['Annual Income'].mode()
mode
mode=mode[0]
data['Annual Income'].fillna(mode,inplace=True)
data['Annual Income'].isnull().sum()
## 填补所有的数值型缺失值
从上面的打印信息可以看到,缺失值的数值列包括:Annual Income、Months since last delinquent、Bankruptcies、Credit Score。这些列的缺失值数量分别为1557、4081、14和1557。
data.columns
import numpy as np
c=data.columns.tolist()
type(c)
for i in c:
if data[i].dtype!='object':
if data[i].isnull().sum()>0:
mean_value=data[i].mean()
data[i].fillna(mean_value,inplace=True)
data.isnull().sum()