python基础知识2------判断语句、循环语句

本文深入探讨Python编程中的判断语句和循环结构。内容涵盖数据类型转换、字符串格式化、逻辑和赋值运算符,以及if、if-else、if-elif-else结构的使用。此外,文章还讨论了死循环、无限循环的概念,并通过实例展示了如何使用循环计算1-100之间偶数的和。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、复习:

数据类型转换:数据本来的类型不是我们计算使用想要的类型

int()将其他类型转换为int类型(小数,整数类型的字符串)

float()将其他类型转换为float类型(整数,数字类型的字符串)

str()将其他类型转换为str类型(任意类型)

函数:作用 语法

type(变量) 可以获取变量的数据类型

input()   获取键盘的输入

变量=input('提示性信息')       #提示性信息可以随便写,目的是让别人知道要做什么事

二、字符串格式化的补充

字符串 . format()    可以在任意版本中使用

1.在需要使用变量的地方使用{}占位

2.'{},{},...'.format(变量,变量,...)

代码示例:

name = '小米'
age = 12
height = 1.2
stu_num = 1
num = 90
# print('我的名字是xx,年龄是xx,身⾼是xx ,学号xx,本次考试的及格率为xx%')
print(f'我的名字是{name},年龄是{age},身⾼是{height}m ,学号{stu_num},本次考试的及格率为{num}%')
# ⼀般不会有这样的需求
print(f'我的名字是{name},年龄是{age},身⾼是{height:.3f} m,学号{stu_num:03d},本次考试的及格率为{num}%')
# 在字符串中想要输出换⾏\n (转义字符)
print(f'我的名字是{name},年龄是{age},身⾼是{height:.3f}m ,学号{stu_num:03d},\n本次考试的及格率为{num}%')

# 字符串 . format()
print('我的名字是{},年龄是{},身⾼是{}m ,学号{},本次考试的及格率为{}%'.format(name, age, height, stu_num, num))

三、运算符

逻辑运算符

逻辑运算符:可以连接多个条件,在判断和循环中使用

and   逻辑与   和, 并且    and连接两个条件,都必须为True,整体结果才为True,即一假为假(当第一个条件为False的时候,第二个条件就不再判断)

or    逻辑或  或者    or连接的两个条件,只要有一个条件为True,整体结果就为True,即一真为真(当第一个条件为True的时候,第二个条件就不再判断)

not   逻辑非   取反    not后边的条件,如果本来是True,变为False,本来是False,变为True

赋值运算符

赋值运算符 =, 作用就是将等号右边的值保存到等号左边的变量中

复合赋值运算符(将算术运算符和赋值运算符进行结合)

+=  -=   *=   /=   //=  %=   

a+=b===>a=a+b 

运算符优先级

不需要刻意去记忆优先级,因为可以使用()改变优先级

四、判断

日常生活中说的如果...否则....,这个就是判断,在程序代码中需要使用if(如果)elif(如果)else(否则)三个关键字来实现

在代码中有判断语句,代码不会全部执行,会有一部分不会执行

if的基本结构

即 只有 如果的情况,如果的条件成立,会执行的代码,会做的事

基本语法

if判断条件:

        书写条件成立(真),执行的代码

        书写条件成立(真),执行的代码

顶格书写,没有缩进的代码,和if无关,不管条件是否成立,都会执行

#1.if是一个关键字,和后续的判断条件之间需要一个空格

#2.判断条件后边需要一个冒号,不要少了

#3.冒号之后,回车,代码需要缩进,在pycharm中会自动进行缩进,一般是4个空格或者一个tab键

#4.所有在if代码下方的缩进中书写的代码,属于if语句的代码块,判断条件为True的时候会执行

#5.if代码块中的代码,要么都执行,要么都不执行

#6.if代码块结束之后,代码要顶格书写(不再有缩进),表示是和if无关的代码

代码案例

1、使用input获取用户的年龄

2.判断年龄是否满足18岁

3.如果年龄大于等于(满足)18岁,输出'满18岁了,可以进入网吧为所欲为了'

练习

# 使用input获取用户年龄,类型是str
age = input('请输入年龄')
# 判断年龄是否满足18岁
if int(age) >= 18:         # 类型是int,字符串和int类型不能比大小,先类型转换,再比大小
    # 如果年龄大于等于 (满足)18岁,输出'满18岁了,可以进入网吧为所欲为了
    print('满18岁了,可以进入网吧为所欲为了')

print('我和if判断没有关系,不管怎样,都会执行')

if else结构

如果条件成立做什么事否则(条件不成立)做另一件事

  • 基本语法:

if判断条件:

        书写条件成立(真),执行的代码

        书写条件成立(真),执行的代码

else:

        书写条件不成立(假),执行的代码

        书写条件不成立(假),执行的代码

#1.else是关键字,后边需要冒号

#2.冒号之后回车,同样需要缩进

#3.处于else代码下方缩进中的内容,属于else的代码块

#4.if和else的代码块,只会执行其中的一个

#5.else需要结合if使用

#6.ifelse之间不能有其他顶格书写的内容(不提elif)

  • 代码案例:

1.使用input获取用户的年龄

2.判断年龄是否满足18岁

3.如果年龄大于等于(满足)18岁,输出'满18岁了,可以进入网吧为所欲为了'

4.如果不满足,输出'不满18岁,回去写作业吧

# 使用input获取用户年龄,类型是str
age = input('请输入年龄')
# 判断年龄是否满足18岁
if int(age) >= 18:         # 类型是int,字符串和int类型不能比大小,先类型转换,再比大小
    # 如果年龄大于等于 (满足)18岁,输出'满18岁了,可以进入网吧为所欲为了
    print('满18岁了,可以进入网吧为所欲为了')
    # 如果年龄不满足,输出'不满18岁,回家写作业吧'
else:
    print('不满18岁,回家写作业吧')

if和逻辑运算符结合使用

案例1:

1.获取用户输入的用户名和密码

2.判断用户名是admin并且密码是123456时,在控制台输出:登录成功!

3.否则在控制台输出:登录信息错误!

# 1.获取用户输入的用户名和密码
name = input('请输入用户名:')
pwd = input('请输入密码:')
# 2.判断用户名是admin并且密码是123456时,在控制台输出:登录成功!
if name == 'admin' and pwd == '123456':
    print('登录成功!')
# 3.否则在控制台输出:登录信息错误!
else:
    print('登录信息错误')

案例2:

1.获取用户输入的用户名

2.判断用户名是admin时,在控制台输出:欢迎admin登录!

3.用户名是test时,在控制台输出:欢迎test登录!

4.如果是其他信息,在控制台输出:查无此人!

# 1.获取用户输入的用户名
username = input('请输入用户名:')
# 2.判断用户名是admin时,在控制台输出:欢迎admin登录!
# 3.用户名是test时,在控制台输出:欢迎test登录!
if username == 'admin' or username == 'test':
    print(f'欢迎 {username} 登录')
# 4.如果是其他信息,在控制台输出:查无此人!
else:
    print('查无此人')

if elif else结构

如果某个判断条件有多个,此时建议使用ifelifelse结构来实现

  • 语法

if判断条件1:

        判断条件1成立,执行的代码 

elif判断条件2:     #只有判断条件1不成立,才会判断判断条件2

        判断条件2成立执行的代码

else:以上条件都不成立,执行的代码

#1.elif也是关键字,后边和判断条件之间需要一个空格,判断条件之后需要冒号

#2.冒号之后回车需要缩进,处在这个缩进中的的代码表示是elif的代码块

#3.在一个if判断中,可以有很多个elif

#4.只有if的条件不成立,才会去判断elif的条件

#5.在一个if中,如果有多个elif,只要有一个条件成立,后续的所有都不再判断

#6.ifelifelse结构,和if的缩进相同的只能是elif和else,如果是其他的,就表示这个判断结构结束了

if判断条件1:

        执行的代码

if判断条件2:

        执行的代码

if判断条件3:

        执行的代码 

#多个if的结构,每个if都会进行判断,之间没有关联系

  • 案例

1.定义score变量记录考试分数

2.如果分数是大于等于90分应该显示优

3.如果分数是大于等于80分并且小于90分应该显示良

4.如果分数是大于等于70分并且小于80分应该显示中

5.如果分数是大于等于60分并且小于70分应该显示差

6.其它分数显示不及格

elif实现

# 1.定义score变量记录考试分数
score = int(input('请输入你的分数'))
# 2.如果分数是大于等于90分应该显示优
if score >= 90:
    print('优')
# 3.如果分数是大于等于80分并且小于90分应该显示良
elif (score >= 80) and score < 90:
    print('良')
# 4.如果分数是大于等于70分并且小于80分应该显示中
#andscore<80可以不写的,原因只有上边一个判断条件不成立(一定满足score<80),才会执行这个
elif score >= 70 and score < 80:
    print('中')
# 5.如果分数是大于等于60分并且小于70分应该显示差
elif score >= 60 :
    print('差')
# 6.其它分数显示不及格
else:
    print('不及格')

多个if实现

# 1.定义score变量记录考试分数
score = int(input('请输入你的分数'))
# 2.如果分数是大于等于90分应该显示优
if score >= 90:
    print('优')
# 3.如果分数是大于等于80分并且小于90分应该显示良
if (score >= 80) and score < 90:
    print('良')
# 4.如果分数是大于等于70分并且小于80分应该显示中
#andscore<80可以不写的,原因只有上边一个判断条件不成立(一定满足score<80),才会执行这个
if (score >= 70) and score < 80:
    print('中')
# 5.如果分数是大于等于60分并且小于70分应该显示差
if (score >= 60) and score < 70:
    print('差')
# 6.其它分数显示不及格
if score < 60:
    print('不及格')

Debug调试代码

debug在代码中出现问题错误(bug),可以使用debug来调试代码,查找错误.

我们使用debug主要用来查看代码的执行步骤

1、打断点:

在pycharm中,代码和行号之间进行点击,出现小红点即打断点,再次点击小红点会取消断点

断点的位置,一般来说会在代码的第一行(在程序运行的时候,想要在什么地方停下来)

注意点:可能会出现的bug(pycharm软件的问题):代码中只有一个断点的时候不能debug调试查看代码执行过程,解决方案,在代码其他任意地方多加一个断点

2、 右键debug运行代码

3.单步执行代码

 

if嵌套

if嵌套,是指在一个if   ( elif   else)中嵌套另一个if.

使用场景:判断条件存在递进关系(只有第一个条件满足了,才会判断第二个条件)

  • 语法

if判断条件1:

        判断条件1成立,执行的代码

        if判断条件2:

                判断条件2成立,执行的代码

        else:

                判断条件2不成立,执行的代码

else:

        判断条件1不成立,执行的代码

  • 代码案例:

取款机取钱的过程,假定你的密码是:123456,账户余额为1000

1.提示用户输入密码

2.判断密码是否正确

3.密码正确后,提示输入取款的金额,

4.判断取款的金额和余额的关系

# 取款机取钱的过程,假定你的密码是:123456,账户余额为1000
pwd = '123456'
money = 1000
# 1.提示用户输入密码
password = input('请输入密码:')
# 2.判断密码是否正确
if password == pwd:
    print('密码正确,登录成功')
    # 3.密码正确后,提示输入取款的金额
    get_money = int(input('请输入要取款的金额'))
    # 4.判断取款的金额和余额的关系
    if money >= get_money:
        print('取款成功')
    else:
        print('余额不足')
else:
    print('密码错误,请再次尝试')

  • 练习:

假定某网站用户名固定为'admin',密码固定为'123456',验证码固定为'8888'

1.获取用户输入的用户名,密码和验证码

2.先判断验证码是否正确,如果正确打印输出验证码正确,再判断用户名和密码是否正确

3.如果验证吗不正确,直接输出验证码不正确,请重新输入

# 假定某网站用户名固定为'admin',密码固定为'123456',验证码固定为'8888'
# 1.获取用户输入的用户名,密码和验证码
username = input('请输入用户名')
pwd = input('请输入密码')
code = input('请输入验证码')
# 2.先判断验证码是否正确,如果正确打印输出验证码正确,再判断用户名和密码是否正确
if code == '8888':
    print('验证码正确')
    if username == 'admin' and pwd == '123456':
        print('用户名密码正确,登录成功')
    else:
        print('用户名或者密码不正确,请再次尝试')
# 3.如果验证吗不正确,直接输出验证码不正确,请重新输入
else:
    print('验证码不正确,请重新输入')

案例:

猜拳游戏:剪刀、石头、布

案例的步骤:

1.自己出拳(石头(1)/剪刀(2)/布(3))input(player)

2.电脑随机出拳(使用随机数模块(工具)完成)(computer)

3.判断输赢

3.1玩家胜利

        3.1.1player==1andcomputer==2

        or

        3.1.2player==2andcomputer==3

        or

         3.1.3player==3andcomputer==1

3.2 平局        player==computer

3.3  玩家输了   else

随机出拳:

案例中需要电脑随机出拳,即随机出123

在Python中想要随机获得整数数字可以使用如下方法

#1.导入随机数工具包importrandom

#2.使用工具包中的工具产生指定范围内的数字

random.randint(a,b)      #产生[a,b]之间的随机整数,包含ab的

import random#这行代码习惯性的放在第一行

num=random.randint(1,3)

print(num)
import random
# 剪刀、石头、布
# 案例的步骤
# 1.自己出拳(石头(1)/剪刀(2)/布(3)) input (player)
player = int(input('请出拳:石头(1)/剪刀(2)/布(3):'))
# 2.电脑随机出拳(使用随机数模块(工具)完成)(computer)
computer = random.randint(1,3)
# 3.判断输赢
# 3.1玩家胜利
if (player==1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1):
    print('恭喜玩家胜利')
# 3.2 平局
elif player == computer:
    print('平局')
# 3.3  玩家输了  else
else:
    print('输了,不要放弃,再来一局')

   五、循环

程序开发中(写代码),有三大流程(三大结构):

1,顺序,代码从上到下,全部执行

2,分支,判断语句,代码有选择性的执行

3,循环,重复执行某一部分的代码

循环的作用就是让指定的代码重复的执行

  • 语法:

1.设置循环的初始条件(计数器)

2.书写循环的判断条件

while判断条件:

        #3.需要重复执行的代码

        #4.改变循环的初始条件(计数器)

#1.while是关键字

# 1.设置循环的初始条件(计数器)
i = 0
# 2.书写判断条件
while i < 100:
    # 3.重复执行的代码
    print('媳妇儿,我错了')
    # 4.改变初始条件
    # i=i+1
    i += 1

死循环和无限循环

死循环:一般是由写代码的人不小心造成的bug,代码一直不停的运行下去

无限循环:写代码的人故意让代码无限制的去执行,代码一直不停的运行下去

无限循环的使用场景:在书写循环的时候,不确定循环要执行多少次

无限循环的使用一般会在循环中添加一个if判断,当if条件成立,使用关键字break来终止循环

whileTrue:

        重复执行的代码。 #可以在if的上边

        if判断条件:

        break    #关键字的作用就是终止循环,当代码执行遇到break,这个循环就不再执行了

        重复执行的代码    #可以在if的下边

import random
# 剪刀、石头、布
while True:
    # 1.自己出拳(石头(1)/剪刀(2)/布(3)) input (player)
    player = int(input('请出拳:石头(1)/剪刀(2)/布(3)/退出(0):'))
    if player == 0:
        break
    # 2.电脑随机出拳(使用随机数模块(工具)完成)(computer)
    computer = random.randint(1,3)
    # 3.判断输赢
    # 3.1玩家胜利
    if (player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1):
        print('恭喜玩家胜利')
    # 3.2 平局
    elif player == computer:
        print('平局')
    # 3.3  玩家输了  else
    else:
        print('输了,不要放弃,再来一局')

使用循环求1-100之间偶数的和

方法一

直接找到1-100之间所有的偶数,进行相加

2  4  6  8.....98    100

# 1.定义变量保存求和的结果
num = 0
# 2定义循环获取1-100之间的偶数并求和
# 2.1定义初始条件
i = 2
# 2.2书写循环的条件
while i <= 100:
    # 2.3书写重复执行的代码
    num += i     # 因为每一i的值会变化num=num+i
    # 2.4改变计数器
    i += 2
# 3打印求和的结果
print('求和结果是:', num)

方法二

1.找1-100之间所有的数字

2.判断这个数字是不是偶数,如果是偶数再求和

偶数:能被2整除的数,(数字除2的余数是0)

i%2==0

num = 0
i = 1
while i<=100:
    # 判断该数字是不是偶数,如果是偶数再求和
    if i % 2 == 0:
        num += i
    # 改变计数器
    i += 1
print('求和的结果是:', num)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值