01运算语句循环

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:跳过(下次循环)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值