Python---if条件判断和while循环


一、条件判断

1.1 条件判断语句(if 语句)

  • 定义: 条件判断语句就是if语句
    重点 需要注意条件判断语句和条件运算符的区别:
    条件运算符是有返回结果的,而条件判断语句(if语句)是没有返回结果的。
    条件运算符:

  • 条件运算符:

## 条件运算符
# 语法:  语句1  条件表达式  else 语句2
# 条件运算符执行时,会先对条件语句中的表达式进行求职判断
# 如果判断为 True ,则执行语句1,并返回执行结果
# 如果判断为 False,则执行语句2,并返回执行结果
max = a if a > b and a > c else c
print(max)   # a
  • 条件判断语句:
# 语法:
 if   条件表达式:
      代码块1

举个栗子:
x = int(input("请输入012三个数字"))
if x == 0:
    print(111)
if x == 2:
    print(222)
if x == 1:
    print(333)

1.2 input() 函数

  • 作用: input() 函数主要用来获取用户的输入
  • input()调用后,程序会立即暂停,等待用户输入
  • 用户输入完成后,点击回车程序才会继续向下执行
  • 用户输入完成以后,其所输入的内容会以返回值的形式返回。
  • 特性1: input 接收到的数据一定是一个字符串,响应和 int 类型的数据进行转换,一定要进行类型转换。
a = input("请输入数字:")
print(type(a))
----------输出---------
请输入数字: 111
<class 'str'>
  • 类型转换
b = int(input("请输入数字:"))
print(type(b))
---------输出---------
请输入数字: 222
<class 'int'>

1.3 if-else 语句 <非此即彼>

  • 语法:
- `if   条件表达式 :
     代码块1
else:
     代码块2`
  • 执行过程:
    • if-else 语句在执行时,先对if 后的条件表达式进行请求判断
      • 如果为 True , 则执行 if 后的代码块1
      • 如果为 False,则执行 else 后的代码块2
x = int(input("请输入012三个数字:"))
if x == 0:
    print("1111")
else:
    print("2222")

1.4 if-elif-else 语句

  • 语法:
if  条件表达式1:
    代码块1
elif  条件表达式2:
    代码块2
else:
    代码块3
  • 总结: if-elif-else 中只会有一个代码块会执行。
salary = 40000

if salary > 30000:
    print('有钱任性')
elif  salary >= 20000:
    print('解决温饱')
elif  salary >= 10000:
    print('月薪过万')
elif  salary >= 5000:
    print('新手小白')
else:
    print('吃土吧')
-------输出------
有钱任性
  • 特性: if-elif-else 条件流程是从上到下,按顺序执行的;如果前面的条件满足,后面的停止,不再进行判断。永远有一个满足条件。
value =  18000

if  value >= 30000:
    print("有钱任性")
elif  value >= 5000 and value < 10000:
    print("新手小白")
elif  value >= 20000 and value < 30000:
    print("解决温饱")
elif  value >= 10000 and value < 20000:
    print("月薪过万")
else:
    print("吃土吧")

二、while循环

2.1 while 语句

  • 循环语句可以使指定的代码块重复指定的次数,循环语句分为2种: while 循环 和 for循环。
    语法:
  • 只要条件表达式结果为 True ,就执行代码块。
  • 一直会无线循环,即死循环。直到条件表达式结果为 False ,循环才结束。
    while循环三要素:
    设定一个初始值;
    对初始值进行条件判断,增加一个条件语句,对初始值进行一个条件表达式的限制。
    初始值的自增长。
i = 0
while i < 5:
print(i)
i += 1  # i = i  + 1
-----执行-----
0
1
2
3
4


######################
# 1-100累加

i = 0
result = 0
while i < 101:
    result += i
    i += 1
print(result)

# 1-100 偶数想加
i = 0
result = 0
while i < 101:
    if i % 2 == 0:
        result += i
    i += 1
print(result)

# 1-100 偶数想加
i = 0
result = 0
while i < 101:
    result += i
    i += 2
print(result)

小实验

打印 下面图案

*
* *
* * *
* * * *
* * * * *
i = 1
while i < 6:
    j = 1
    while j <= i:
        print('*', end=' ')
        j += 1
    print()
    i += 1


#########################
i = 0
while i < 5:
    j = 0  # j 重新赋值
    while j < 5-i:
        print("*", end=' ')
        j += 1
    print()
    i += 1

求 1000 以内的水仙花数

科普:什么是水仙花数?
水仙花数,指一个3位数,它的每个位上的数字的3次冥之和等于它本身。例如:1^3 + 5^3 + 3^3=153

cont = 100
while cont < 1000:
    x = int(cont/100)
    y = int(cont % 100 / 10)
    z = int(cont % 100 % 10)
    if cont == x**3 + y**3 + z**3:
        print(cont)
    cont += 1
    ##########################
    153
	370
	371
	407
第二种方法

i = 100
while i < 1000:
    i += 1
    a = str(i)
    if int(a[0])**3 + int(a[1])**3 + int(a[2])**3 == i:
        print(a)

  • 获取用户输入的任意数,判断是否是质数 ?
    质数:又称素数,一个大于1 的自然数,除了1和它自身外,不能被其他自然数整数的数叫质数。
num = int(input("请输入一个数字:"))
if 1 < num <= 2:
    print(num, '是质数')
elif num > 2:
    i = 2
    while i < num:
        if num % i == 0:
            print(num, "不是质数")
            break
        i += 1
    else:
        print(num, '是质数')
else:
    print(num, "不是质数")

猜拳游戏

import random

# 玩家出拳
player = int(input('清出拳: 0--石头;1--剪刀;2--布'))
# 电脑
computer = random.randint(0, 2)
# print(computer)

# 判断输赢
# 玩家胜
if ((player == 0) and (computer == 1)) or ((player == 1) and (computer == 2)) or ((player == 2) and (computer == 0)):
    print('玩家获胜,哈哈哈!!!')
elif player == computer:
    print('平局,别走,再来一局!!!')
else:
    print('电脑获胜')

三个数比大小

a = 10
b = 20
c = 30
max1 = (a if a > b else b) if (a if a > b else b) > c else c
max2 = a if a > b and a > c else b if b > c else c
print(max1)
print(max2)

or循环小例子–等腰直角三角形–实心等边三角形等等

# myname = 'guofeng80'

# for g in myname:
#     if g == 'e':
#         print('遇到e不打印')
#         # break
#         continue
#     print(g)
# else:
#     print('循环正常结束之后执行的代码')

# coding:utf-8
rows = int(input('输入列数 '))
i = j = k = 1  # 声明变量,i用于控制外层循环(图形行数),j用于控制空格的个数,k用于控制*的个数
# 等腰直角三角形1
print("等腰直角三角形1")
for i in range(0, rows):
    for k in range(0, rows - i):
        print(" * ", end='')  # 注意这里的",",一定不能省略,可以起到不换行的作用
        k += 1
    i += 1
    print("\n")
# 打印实心等边三角形
print("打印空心等边三角形,这里去掉if-else条件判断就是实心的")
for i in range(0, rows + 1):
    # 变量i控制行数
    for j in range(0, rows - i):
        # (1,rows-i)
        print(" ", end='')
        j += 1
    for k in range(0, 2 * i - 1):
        # (1,2*i)
        if k == 0 or k == 2 * i - 2 or i == rows:
            if i == rows:
                if k % 2 == 0:
                    # 因为第一个数是从0开始的,所以要是偶数打印*,奇数打印空格
                    print("*", end='')
                else:
                    print(" ", end='')
            else:
                print("*", end='')
        else:
            print(" ", end='')
        k += 1
    print("\n")
    i += 1
# 打印菱形
print("打印空心等菱形,这里去掉if-else条件判断就是实心的")
for i in range(rows):
    # 变量i控制行数
    for j in range(rows - i):
        # (1,rows-i)
        print(" ", end='')
        j += 1
    for k in range(2 * i - 1):
        # (1,2*i)
        if k == 0 or k == 2 * i - 2:
            print("*", end='')
        else:
            print(" ", end='')
        k += 1
    print("\n")
    i += 1
    # 菱形的下半部分
for i in range(rows):
    for j in range(i):
        #  (1,rows-i)
        print(" ", end='')
        j += 1
    for k in range(2 * (rows - i) - 1):
        # (1,2*i)
        if k == 0 or k == 2 * (rows - i) - 2:
            print("*", end='')
        else:
            print(" ", end='')
        k += 1
    print("\n")
    i += 1
# 实心正方形
print("实心正方形")
for i in range(0, rows):
    for k in range(0, rows):
        print(" * ", end='')  # 注意这里的",",一定不能省略,可以起到不换行的作用
        k += 1
    i += 1
    print("\n")
# 空心正方形
print("空心正方形")
for i in range(0, rows):
    for k in range(0, rows):
        if i != 0 and i != rows - 1:
            if k == 0 or k == rows - 1:
                # 由于视觉效果看起来更像正方形,所以这里*两侧加了空格,增大距离
                print(" * ", end='')  # 注意这里的",",一定不能省略,可以起到不换行的作用
            else:
                print("   ", end='')  # 该处有三个空格
        else:
            print(" * ", end='')  # 这里*两侧加了空格
        k += 1
    i += 1
    print("\n")

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

guofeng80

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值