python学习01
3.1.1 pycharm常用快捷键
(1) 移动到本行开头:home键
(2) 移动到本行末尾:end键盘
(3) 注释代码:ctrl + /
(4) 复制行:ctrl +d #光标放行上
(5) 删除行:shift + delete
(6) 选择列:shift + alt +鼠标左键 #多列操作
(7) 移动行:ctrl + shift + 上下箭头
(8) 代码格式化:ctrl+alt+l
(9) 关闭左侧项目菜单栏: alt+1
(10) tab 缩进,shift+tab反缩进
(11)选中,shift+F6 批量修改字段
""" 创建文件:汇率转换器 """
# 1. 获取数据 - 美元
usd = input("请输入美元:")
# 2. 逻辑处理 - 美元 * 6
cny = int(usd) * 6
# 3. 显示结果 - xx美元是xx人民币
print(usd + "美元是" + str(cny) + "人民币")
3.1.2 注释
(1) 单行注释:以#号开头。
(2) 多行注释:三引号开头,三引号结尾。
3.2 数据
3.2.1 变量
(1) 定义:关联一个对象的标识符。
(2) 命名:必须是字母或下划线开头,后跟字母、数字、下划线。不能使用关键字
(3) 建议命名:字母小写,多个单词以下划线隔开。
name1="tom"
name2=name1
del name1 //删除语句,解除与对象的关联,当关联为0时被销毁
print (name2)
tom
3.2.3 核心类型
在python中变量没有类型,但关联的对象有类型。
整形int 表示整数,包含正数、负数、0。
num01 = 10
浮点型float 表示小数,包含正数、负数,0.0
num01 = 1.23
字符串str 用来记录文本信息(文字信息)。
name1="tom"
布尔bool 用来表示真和假的类型 True 表示真,本质是1 False 表示假,本质是0
3.3 运算
3.3.1 类型转换
从终端中获取的数据类型都是str,如需要进行运算,需要类型转换。结果 = 目标类型(待转换数据)
(1) 转换为整形: int(数据)
(2) 转换为浮点型: float(数据)
(3) 转换为字符串: str(数据)
(4) 转换为布尔: bool(数据) 结果为False:bool(0) bool(0.0) bool(None)
(5) 混合类型自动升级:
1 + 2.14 返回的结果是 3.14
1 + 3.0 返回结果是: 4.0
# 注意:字符串转换为其他类型时, 必须是目标类型的字符串表达形式
# print(int("10.5")) # 报错 字符串10同整数样式,转整形
# print(float("abc"))# 报错 abc不是浮点样式,转不了
"""
练习:在终端中输入商品单价、购买的数量和支付金额。计算应该找回多少钱。
效果:
请输入商品单价:5
请输入购买数量:3
请输入支付金额:20
应找回:5.0
"""
# 1. 获取数据
unit_price = float(input("请输入商品单价:"))
purchase_quantity = int(input("请输入购买数量:"))
pay_money = float(input("请输入支付金额:"))
# 2. 逻辑计算
result = pay_money - unit_price * purchase_quantity
# 3. 显示结果
print("应找回:" + str(result))
3.3.2 运算符
3.3.2.1 算术运算符
+ 加法 - 减法 * 乘法 / 除法:结果为浮点数
// 整除:除的结果去掉小数部分 % 求余 ** 幂运算
优先级从高到低: (), ** , * / % // , + -
3.3.2.2 增强运算符
+= -= *= /= //= ...
y += x 相当于 y = y + x
y -= x 相当于 y = y - x
y *= x 相当于 y = y * x
练习
"""
练习1:在终端中输入一个疫情确诊人数再录入一个治愈人数,打印治愈比例
格式:治愈比例为xx%
效果:
请输入确诊人数:500
请输入治愈人数:495
治愈比例为99.0%
"""
number_of_confirmed = int(input("请输入确诊人数:"))
number_of_cure = int(input("请输入治愈人数:"))
cure_ratio = number_of_cure / number_of_confirmed * 100
print("治愈比例为" + str(cure_ratio) + "%")
"""
练习2:古代的秤,一斤十六两。
在终端中获取两,计算几斤零几两。
"""
total_liang = int(input("请输入总两数:"))
jin = total_liang // 16
liang = total_liang % 16
print("结果为:" + str(jin) + "斤" + str(liang) + "两")
"""
匀变速直线运动的速度与位移公式:
位移 = 初速度 × 时间 + 加速度 * 时间的平方 / 2
已知(在终端中录入):位移、时间、初速度
计算:加速度
效果:
请输入距离:100
请输入初速度:6
请输入时间:10
加速度是:0.8
"""
s = float(input("请输入距离:"))
v0 = float(input("请输入初速度:"))
t = float(input("请输入时间:"))
a = (s - v0 * t) * 2 / t ** 2
print("加速度是:" + str(a))
"""
练习:在终端中输入一个四位整数,计算每位相加和。
例如:录入1234,打印1+2+3+4结果
效果:
请输入四位整数:1234
结果是:10
"""
number = int(input("请输入四位整数:")) # 1234
# unit01 = number % 10 # 个位
# # 1234 // 10 --> 123 % 10
# unit02 = number // 10 % 10 # 十位
# # 1234 // 100 --> 12 % 10
# unit03 = number // 100 % 10 # 百位
# unit04 = number // 1000 # 千位
# result = unit01 + unit02 + unit03 + unit04
# print("结果是:" + str(result))
result = number % 10
result += number // 10 % 10
result += number // 100 % 10
result += number // 1000
print("结果是:" + str(result))
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SWyqbTfD-1653568645510)(picture\1652881744(1)].png)
"""
根据工资计算个人社保缴纳费用
步骤:在终端中录入工资,根据公式计算,显示缴纳费用
公式:养老保险8% + 医疗保险2% + 3元 + 失业保险0.2% + 公积金12%
"""
salary_before_tax = float(input("请输入税前工资:"))
social_insurance = salary_before_tax * (0.08 + 0.02 + 0.002 + 0.12) + 3
print("个人需要缴纳社保费用:" + str(social_insurance))
3.3.2.3 比较运算符
< 小于 <= 小于等于 > 大于
>= 大于等于 == 等于 != 不等于
返回布尔类型的值
result = input("请输入您的职业:") == "老师"
print(result) # 输入老师,结果True; 输入其他,结果False
print(666 == "666")
print(27 % 10 == 2)
print(float(input("请输入你的身高:")) > 170)
3.3.2.4 逻辑运算符
"""
逻辑运算符
判断命题之间关系
与and:
表示并且,2个条件同时满足
或or:
表示或者,1个条件满足即可
非not:
表示取反
"""
# 来自于丈母娘的灵魂质问:
# 有钱 and 有房
# print(int(input("请输入存款:")) >= 1000000 and int(input("请输入房产数量:")) > 0)
# 有钱 or 有房
print(int(input("请输入存款:")) >= 1000000 or int(input("请输入房产数量:")) > 0)
# 取反
print(not True)
False
4. 语句
4.1 行
(1) 物理行:程序员编写代码的行。
(2) 逻辑行:python解释器需要执行的指令。
(3) 建议:一个逻辑行在一个物理行上。如果一个物理行中使用多个逻辑行,需要使用分号;隔开。
(4) 换行:如果逻辑行过长,可以使用隐式换行或显式换行。隐式换行:所有括号的内容换行,称为隐式换行。 括号包括: () [] {} 三种
显式换行:通过折行符 \ (反斜杠)换行,必须放在一行的末尾,目的是告诉解释器,下一行也是本行的语句。
# 1个物理行 4个逻辑行(不建议)
a = 1;b = 2;c = a + b;print(c)
# 4个物理行 1个逻辑行
# -- 换行符
d = 1+\
2+\
3+4\
+5+6
# -- 括号
e = (1+2+
3+4
+5+
6)
4.2 选择语句
4.2.1.1 if else 语句
(1) 作用: 让程序根据条件有选择性的执行语句。
if 条件1:
语句块1
elif 条件2:
语句块2
else:
语句块3
//elif 子句可以有0个或多个。else 子句可以有0个或1个,且只能放在if语句的最后
sex = input("请输入性别:")
# 以下代码,如果前面条件满足,后面条件不执行
if sex == "男":
print("您好,先生")
elif sex == "女":
print("您好,女士")
else:
print("性别未知")
Debug
在可能出错的语句前加断点[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wo3xphHN-1653568645512)(picture\1652886839(1)].png)
"""
练习3:
在终端中输入课程阶段数,显示课程名称
输入: 输出:
1 Python语言核心编程
2 Python高级软件技术
3 Web 全栈
4 项目实战
5 数据分析、人工智能
"""
number = input("请输入数字:")
if number == "1":
print("Python语言核心编程")
elif number == "2":
print("Python高级软件技术")
elif number == "3":
print("Web 全栈")
elif number == "4":
print("项目实战")
elif number == "5":
print("数据分析、人工智能")
上面的if…elif存在逻辑关系,下面看没有关系的多个if。调试观察区别
找极值
"""
练习3:
在终端中录入4个同学身高,打印最高的值.
算法:
170 160 180 165
假设第一个就是最大值,拿假设的依次跟后面的对比
使用假设的和第二个进行比较, 发现更大的就替换假设的
使用假设的和第三个进行比较, 发现更大的就替换假设的
使用假设的和第四个进行比较, 发现更大的就替换假设的
最后,假设的就是最大的.
"""
height01 = int(input("请输入第1个同学身高:"))
height02 = int(input("请输入第2个同学身高:"))
height03 = int(input("请输入第3个同学身高:"))
height04 = int(input("请输入第4个同学身高:"))
max_value = height01
if max_value < height02:
max_value = height02
if max_value < height03: # 前2个最大值与第三个变量比较
max_value = height03
if max_value < height04: # 前3个最大值与第四个变量比
max_value = height04
print("最高的是:" + str(max_value))
变量交换
方式一:通用方法
bridegroom_name ="武大郎"
bride_name =“潘金莲"
temp = bridegroom_name
bridegroom_name = bride_name
bride_name = temp
方式二
a,b = b,a 交换变量
print ( "交换后的新郎∶" + bridegroom_name)
print ( "交换后的新娘∶"+ bride name)
"""
练习5:
根据心理年龄与实际年龄,打印智商等级。
智商IQ = 心理年龄MA 除以 实际年龄CA 乘以 100
天才:140以上(包含)
超常:120-139之间(包含)
聪慧:110-119之间(包含)
正常:90-109之间(包含)
迟钝:80-89之间(包含)
低能:80以下
"""
ma = int(input("请输入心理年龄:"))
ca = int(input("请输入实际年龄:"))
iq = ma / ca * 100
# 连续区间的判断:只需要判断单边
if iq >= 140:
print("天才")
elif iq >= 120:
print("超常")
elif iq >= 110:
print("聪慧")
elif iq >= 90:
print("正常")
elif iq >= 80:
print("迟钝")
else:
print("低能")
"""
根据年龄,输出对应的人生阶段。
年龄 ⼈⽣阶段
0-6 岁 童年
7-17 岁 少年
18-40 岁 ⻘年
41-65 岁 中年
65 岁之后 ⽼年
步骤:
终端中获取年龄, 显示人生阶段
"""
age = int(input("请输入年龄:"))
if age <= 6:
print("童年")
elif age <= 17: # 程序能执行到本行,说明age一定大于6
print("少年")
elif age <= 40:
print("青年")
elif age <= 65:
print("中年")
else:
print("老年")
"""
练习6:
在终端中输入月份,打印相应的天数.
1 3 5 7 8 10 12 有 31天
2 有 29天
4 6 9 11 有 30天
超过月份提示月份有误
"""
month = int(input("请输入月份:"))
if 1 <= month <= 12:
if month == 2:
print("29天")
elif month == 4 or month == 6 or month == 9 or month == 11:
print("30天")
else:
print("31天")
else:
print("月份有误")
4.2.1.2 if 真值表达式 :
bool 转换 : int 0 , fload 0.0 , str 空 为false
//以下输出均为false
print(bool(0))
print(bool(0.0))
print(bool())
content = input("输入:")
if content:
print("输入的是:"+content)
4.2.1.3 条件表达式
value = 1 if input("请输入性别:") == "男" else value = 0
根据条件为变量赋值,且为同一变量value
//简化下面的书写
if input("请输入性别:") == "男":
value = 1
else:
value = 0
"""
电梯设置规定:
如果承载⼈不超过10⼈,且总重量不超过1000千克,可以正常使⽤,否则提示超载。
步骤:
终端中获取人数/总重量
显示电梯正常运行
电梯超载
"""
num = int(input("请输入电梯承载人数:"))
weight = float(input("请输入电梯承载重量:"))
if num <= 10 and weight <= 1000:
print("电梯正常运行")
else:
print("电梯超载")
4.3 循环语句
4.3.1 while语句
作用: 可以让一段代码满足条件,重复执行。
while 条件: # 满足条件执行的语句
....
'''下面else可省略,使用较少'''
else:
....
while True:
循环体
if 条件:
break
死循环
"""
让下列代码重复执行,输入y继续(不输入y则退出)
"""
while True:
number = int(input("请输入数字:"))
if number > 0:
print("正数")
elif number < 0:
print("负数")
else:
print("零")
if input("输入y继续") != "y":
break
循环计数
"""
while 循环计数
三要素: 开始,结束,间隔
"""
# print("跑圈")
# print("跑圈")
# print("跑圈")
# print("跑圈")
# print("跑圈")
count =0 '''开始'''
while count < 5: '''结束'''
print(count) # 0 1 2 3 4
count += 1 '''间隔'''
# 在终端中显示0 1 2 3
# 在终端中显示2 3 4 5 6
# 在终端中显示1 3 5 7
# 在终端中显示8 7 6 5 4
# 在终端中显示-1 -2 -3 -4 -5
count = 0
while count < 4:
print(count)
count += 1
count = 2
while count < 7:
print(count)
count += 1
count = 1
while count < 8:
print(count)
count += 2
count = 8
while count > 3:
print(count)
count -= 1
count = -1
while count > -6:
print(count)
count -= 1
练习4:
一张纸的厚度是0.01毫米
请计算,对折多少次超过珠穆朗玛峰(8844.43米)
思路:
数据:厚度、高度、次数
算法:厚度*=2 次数+=1
thickness = 1e-5
count = 0
while thickness < 8844.43:
thickness*=2
count+=1
print("对折"+str(count))
在终端中循环录入5个成绩,最后打印平均成绩(总成绩除以人数)
count =0
sum_score = 0
while count < 5:
sum_score += int(input("请输入成绩:"))
count += 1
print("平均分:"+str(sum_score / 5))
"""
程序产生1个,1到100之间的随机数。
让玩家重复猜测,直到猜对为止。
每次提示:大了、小了、恭喜猜对了,总共猜了多少次。
"""
# 1. 准备随机数工具
import random
# 2. 产生随机数
random_number = random.randint(1, 100)
count = 0
while True:
count += 1
input_number = int(input("请猜数字:"))
if input_number > random_number:
print("大了")
elif input_number < random_number:
print("小了")
else:
print("恭喜猜对了,总共猜了" + str(count) + "次")
break
#猜三次结束
import random
random_number = random.randint(1, 100)
count = 0
while count < 3:
count += 1
input_number = int(input("请猜数字:"))
if input_number > random_number:
print("大了")
elif input_number < random_number:
print("小了")
else:
print("恭喜猜对了,总共猜了" + str(count) + "次")
break
else:
print("Game Over")
4.3.2 for 语句
用来遍历可迭代对象的数据元素。可迭代对象是指能依次获取数据元素的对象,例如:容器类型。
else子句可以省略。 在循环体内用break终止循环时,else子句不执行
for 变量列表 in 可迭代对象:
语句块1
在终端中输入任意整数,计算累加和
number = input("请输入数字:")
sum_value = 0
for item in number:
sum_value += int(item)
print(sum_value)
循环计数
"""
for 循环计数
"""
# 写法1:
# for 变量 in range(开始,结束,间隔):
# 注意:不包含结束值
for item in range(1, 5, 1):
print(item) # 1~4
# 写法2:
# for 变量 in range(开始,结束):
# 注意:间隔默认为1
for item in range(1, 5):
print(item) # 1~4
# 写法3:
# for 变量 in range(结束):
# 注意:开始默认为0
for item in range(5):
print(item)
跳转语句continue break
对for while循环语句进行跳出,continue跳出本次循环,break跳出循环
"""
跳转语句
"""
# 需求:累加1--100之间整数
# 条件:能被3整除
# 思路1:满足条件则执行
# if 条件1:
# if 条件2:
# if 条件3:
# 功能
sum_value = 0
for number in range(1, 101):
if number % 3 == 0:
sum_value += number
print(sum_value)
# 思路2:不满足条件则跳过,否则执行
# if 不满足条件1:
# continue
# if 不满足条件2:
# break
# if 不满足条件3:
# continue
# 功能
sum_value = 0
for number in range(1, 101):
if number % 3 != 0:
continue # 跳(后面代码不执行)过本次循环,继续下次循环
# break# 跳(后面代码不执行)出整个循环体
sum_value += number
print(sum_value)
"""
练习:累加10 -- 60之间,个位不是3/5/8的整数和。
"""
sum_value = 0
for number in range(10, 61):
unit = number % 10
if unit == 3 or unit == 5 or unit == 8:
continue
sum_value += number
print(sum_value)
//一定要调试看程序的运行流程,试着将continue改成break,观察调试
流程控制语句总结
选择语句:让语句根据条件有选择性的执行
if 条件:
满足条件执行的语句
else:
不满足条件执行的代码
循环语句:让语句重复执行
-- 延长程序生命
while True:
循环体
if 退出条件:
break
-- 根据条件重复(厚度不超过珠穆朗玛峰则对折)
while 条件:
循环体
-- 根据次数重复(累加1-100之间数字)
for 变量 in range(开始,结束,间隔):
跳转语句:在循环中,让程序跳转到其他语句。
break:跳出(结束循环)
continue:跳过(下次循环)
"""
练习:累加10 -- 60之间,个位不是3/5/8的整数和。
"""
sum_value = 0
for number in range(10, 61):
unit = number % 10
if unit == 3 or unit == 5 or unit == 8:
continue
sum_value += number
print(sum_value)
//一定要调试看程序的运行流程,试着将continue改成break,观察调试
流程控制语句总结
选择语句:让语句根据条件有选择性的执行
if 条件:
满足条件执行的语句
else:
不满足条件执行的代码
循环语句:让语句重复执行
-- 延长程序生命
while True:
循环体
if 退出条件:
break
-- 根据条件重复(厚度不超过珠穆朗玛峰则对折)
while 条件:
循环体
-- 根据次数重复(累加1-100之间数字)
for 变量 in range(开始,结束,间隔):
跳转语句:在循环中,让程序跳转到其他语句。
break:跳出(结束循环)
continue:跳过(下次循环)
857

被折叠的 条评论
为什么被折叠?



