pt01数据类型、语句选择
python01
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 批量修改字段
(12) 跳转函数 ctrl + 鼠标左键
(13) ctrl 加 shift 加 -/+ 收起/展开所有函数
(14) ctrl 加 -/+ 收起/展开光标所在函数
数据类型
在python中变量没有类型,但关联的对象有类型。
整形int 表示整数,包含正数、负数、0。
num01 = 10浮点型float 表示小数,包含正数、负数,0.0
num01 = 1.23字符串str 用来记录文本信息(文字信息)。
name1="tom"布尔bool 用来表示真和假的类型
True 表示真,本质是1 False 表示假,本质是0
变量
(1) 定义:关联一个对象的标识符。
(2) 命名:必须是字母或下划线开头,后跟字母、数字、下划线。不能使用关键字
(3) 建议命名:字母小写,多个单词以下划线隔开。
name1="tom"
name2=name1
del name1 //删除语句,解除与对象的关联,当关联为0时被销毁
print (name2)
tom
类型转换&运算
从终端中获取的数据类型都是str,如需要进行运算,需要类型转换。结果 = 目标类型(待转换数据)
(1) 转换为整形: int(数据)
(2) 转换为浮点型: float(数据)
(3) 转换为字符串: str(数据)
(4) 转换为布尔: bool(数据) 结果为False:bool(0) bool(0.0) bool(None)
(5) 混合类型自动升级:1 + 2.14 返回的结果是 3.141 + 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))
算术运算符
+ 加法 - 减法 * 乘法 / 除法:结果为浮点数
// 整除:除的结果去掉小数部分 % 求余 ** 幂运算
优先级从高到低: (), ** , * / % // , + -
增强运算符
+= -= *= /= //= ...
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-N1sE4xrj-1680706027012)(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))
比较运算符
< 小于 <= 小于等于 > 大于
>= 大于等于 == 等于 != 不等于
返回布尔类型的值
result = input("请输入您的职业:") == "老师"
print(result) # 输入老师,结果True; 输入其他,结果False
print(666 == "666")
print(27 % 10 == 2)
print(float(input("请输入你的身高:")) > 170)
逻辑运算符
"""逻辑运算符判断命题之间关系与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
选择语句
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("性别未知")
"""练习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一定大于6print("少年")
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("月份有误")
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)
条件表达式
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("电梯超载")
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 4count += 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 += 1count = 2
while count < 7:print(count)count += 1count = 1
while count < 8:print(count)count += 2count = 8
while count > 3:print(count)count -= 1count = -1
while count > -6:print(count)count -= 1
练习4:
一张纸的厚度是0.01毫米
请计算,对折多少次超过珠穆朗玛峰(8844.43米)
思路:
数据:厚度、高度、次数
算法:厚度*=2 次数+=1thickness = 1e-5
count = 0
while thickness < 8844.43:thickness*=2count+=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 += 1input_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 += 1input_number = int(input("请猜数字:"))if input_number > random_number:print("大了")elif input_number < random_number:print("小了")else:print("恭喜猜对了,总共猜了" + str(count) + "次")break
else:print("Game Over")
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 % 10if unit == 3 or unit == 5 or unit == 8:continuesum_value += number
print(sum_value)
//一定要调试看程序的运行流程,试着将continue改成break,观察调试
流程控制语句总结
选择语句:让语句根据条件有选择性的执行if 条件:满足条件执行的语句else:不满足条件执行的代码循环语句:让语句重复执行-- 延长程序生命while True:循环体if 退出条件:break-- 根据条件重复(厚度不超过珠穆朗玛峰则对折)while 条件:循环体-- 根据次数重复(累加1-100之间数字)for 变量 in range(开始,结束,间隔):跳转语句:在循环中,让程序跳转到其他语句。break:跳出(结束循环)continue:跳过(下次循环)
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,观察调试
### 流程控制语句总结```python选择语句:让语句根据条件有选择性的执行if 条件:满足条件执行的语句else:不满足条件执行的代码循环语句:让语句重复执行-- 延长程序生命while True:循环体if 退出条件:break-- 根据条件重复(厚度不超过珠穆朗玛峰则对折)while 条件:循环体-- 根据次数重复(累加1-100之间数字)for 变量 in range(开始,结束,间隔):跳转语句:在循环中,让程序跳转到其他语句。break:跳出(结束循环)continue:跳过(下次循环)