Java与Python比较 再探 &&/and Python入门(循环判断if,elif,else,while,for和循环else(for-else)

一、输出

height = 170.5
# 默认本来是几位,就显示几位
print(F"我的身高是{height}cm")  # 我的身高是170.5cm

#  指定小数位  2位小数
print(F"我的身高是{height:.2f}cm")  # 我的身高是170.50cm


#  指定小数位  3位小数
print(F"我的身高是{height:.3f}cm")  # 我的身高是170.500cm

可以控制小数的位数,与Java不同,Java和c的float都只是单精度浮点数,而在Python中float代表的是小数。通过".2"的形式表示要有两位小数

name = "名之以父"
weight = 143.3
height = 177.3
print("我的名字是:%S,体重是%f,身高是:%f", % (name , weight , height))

在使用%号上,最后一块使用一个%号,用括号括起来即可

 二、if语句

1、单个if

# 1、通过用户键盘输入,获取年龄input()
age = input("请输入您的年龄:")
# 需要将字符串类型的age转换为int类型的age
age = int(age)
# 2、判断年龄是否满足18岁,满足的话进行输出
if age > 18:
    # 条件满足才执行
    print("哥过了18岁了,可以为所欲为了")
# 3、程序最后输出,if判断结束,不管是否满足都会输出
print("if语句结束")

在if语句中不需要括号写条件,直接书写即可,在结尾处的花括号被":"代替了,判断语句的结束使用缩进表示。即缩进结束的话,判断语句结束

2、if-else结构

# 1、通过用户键盘输入,获取年龄input()
age = input("请输入您的年龄:")
# 需要将字符串类型的age转换为int类型的age(有两种方式)
age = eval(age)
# age = int(age)

# 2、判断年龄是否满足18岁,满足的话进行输出
if age > 18:
    # 条件满足才执行
    print("哥过了18岁了,可以为所欲为了")
else:
    # 判断条件不满足会执行的代码
    print("你没过18岁,回去好好学习吧,少年!")
# 3、程序最后输出,if判断结束,不管是否满足都会输出
print("if语句结束")

同样是使用“:”表示判断开始,不缩进表示判断结束

3、if-elif-else结构

类似Java,c中的if-else if else结构,就是多重判断的书写方式

需求:

需求:

  1. 成绩大于等于90 ,输出优秀

  2. 成绩大于等于80,小于90,输出良好

  3. 成绩大于等于60,小于80,输出及格

  4. 小于60,输出不及格

score = eval(input('请输入你的成绩:'))

# 1. 成绩大于等于90 ,输出优秀
if score >= 90:
    print('优秀')
# 2. 成绩大于等于80,小于90,输出良好
elif (score >= 80) and score < 90:
    print('良好')
# 3. 成绩大于等于60,小于80,输出及格
elif score >= 60:  # 想要执行这个判断的前提是,前边两个条件都不满足(成立), 代表score一定小于80
    print('及格')
# 4. 小于60,输出不及格
else:
    print('不及格')


print("程序结束")

4、if嵌套

# 假设 money 大于等于2 可以上车
money = eval(input('请输入你拥有的零钱:'))
# money = int(input('请输入你拥有的零钱:'))  # 两种方式

# 1. 有钱可以上车
if money >= 2:
    print('我上车了')
    # 假设 seat 大于等于1,就可以坐
    seat = int(input('车上的空位个数:'))
    # 3. 有空座位,可以坐
    if seat >= 1:
        print('有座位坐')
    else:
        # 4. 没有空座位,就站着
        print('没有座位,只能站着')
else:
    # 2. 没钱不能上车,走路
    print('没钱,我只能走路')

5、案例

猜拳游戏

需要导包,把随机数的包导入

import random

# 缺点:没办法控制用户 必须输入1到3的数
# 1. 用户输入自己出拳的内容
user = int(input('请输入要出的拳:1(石头) 2(剪刀) 3(布):'))
# 2. 让电脑随机出拳
computer = random.randint(1, 3)  # 随机产生1-3 之间的随机数
# print(computer)
# 3. 判断胜负
# 3.1 平局 输入的内容一样  user == computer
# 3.2 user 胜利, ①. user==1 and computer==2  ② user==2 and computer==3 ③ user==3 and computer == 1
# 3.3 else 剩下的情况就是电脑胜利
if user == computer:
    print("电脑出的是:%d" % computer)
    print('平局')
elif (user == 1 and computer == 2) or (user == 2 and computer == 3) or (user == 3 and computer == 1):
    print("电脑出的是:%d" % computer)
    print('恭喜你,胜利了!')
else:
    print("电脑出的是:%d" % computer)
    print('你输了,弱爆了!')

三、三目运算符

本质上是if-else结构的变形

先写第一个表达式(成立的情况)在写判断条件,最后再写不成立的情况

而在Java和c 中是a>b ? a : b (是对和b的大小进行比较, “?”表示问一问是否成立,如果成立的话,输出a,如果不成立的话,输出b,即“:”后面的内容)

                        a-b>0 ? a-b : b-a (a-b的值是否大于0 如果成立,则输出a-b的值;如果不成立,则输出b-a的值)

a = int(input("请输入一个数字:"))
b = int(input("请输入一个数字:"))

result = a-b if a > b else b-a  # 可以加括号
print(result)

if 判断条件1:
    表达式1
else:
    表达式2
    
判断条件成立,执行表达式 1, 条件不成立,执行表达式 2

变量 = 表达式1 if 判断条件 else 表达式2  # 推荐使用扁平化代码

变量最终存储的结构是: 
    判断条件成立,表达式1的值, 
    条件不成立,表达式2的值

 四、while循环

# 使用print输出模拟跑一圈
# print('操场跑圈中.....')
# print('操场跑圈中.....')
# print('操场跑圈中.....')
# print('操场跑圈中.....')
# print('操场跑圈中.....')

# 使用循环解决跑圈问题
# 1. 记录已经跑了多少圈
i = 0
# 3. 书写循环,判断是否满足条件
while i < 5:
    print('操场跑圈中.....')
    # 2. 跑了一圈之后,记录的圈数加1
    i += 1  # 不支持 i++

print('跑圈完成')

猜拳游戏(while版)

import random

# 缺点:没办法控制用户 必须输入1到3的数
while True:
    # 1.用户输入自己出拳的内容
    user = int(input('请输入要出的拳:1(石头) 2(剪刀) 3(布):'))
    # 2. 让电脑随机出拳
    computer = random.randint(1, 3)  # 随机产生1-3 之间的随机数
    # print(computer)
    # 3. 判断胜负
    # 3.1 平局 输入的内容一样  user == computer
    # 3.2 user 胜利, ①. user==1 and computer==2  ② user==2 and computer==3 ③ user==3 and computer == 1
    # 3.3 else 剩下的情况就是电脑胜利
    if user == computer:
        print("电脑出的是:%d" % computer)
        print('平局')
    elif (user == 1 and computer == 2) or (user == 2 and computer == 3) or (user == 3 and computer == 1):
        print("电脑出的是:%d" % computer)
        print('恭喜你,胜利了!')
    else:
        print("电脑出的是:%d" % computer)
        print('你输了,弱爆了!')

break

n = int(input("请输入三角形的一边长:"))

# 2、定义变量,记录打印的行数
j = 1  # 将要打印第一行
while j <= n:
    # 1、定义变量记录一行打印的*个数
    i = 1  # 将要打印第一个
    while i <= j:
        print("* ", end="")
        i += 1
    print()
    j += 1


# for循环打印三角形
for i in range(n):  # 控制行数
    for j in range(i+1):  # i range(i) 不包含i,所以需要+1,控制一行打印的个数
        print("* ", end="")
    print()

1. break 和 continue 是 python 两个关键字
2. break 和 continue 只能用在循环中
3. break 是终止循环的执行, 即循环代码遇到 break,就不再循环了
    continue 是结束本次循环,继续下一次循环, 即本次循环剩下的代码不再执行,但会进行下一次循环 

 continue

# 有五个苹果
# 1. 吃了三个苹果之后, 吃饱了.后续的苹果不吃了
# 2. 吃了三个苹果之后.在吃第四个苹果,发现了半条虫子,这个苹果不吃了,还要吃剩下的苹果

for i in range(1, 6):
    if i == 4:
        print('发现半条虫子,这个苹果不吃了, 没吃饱,继续吃剩下的')
        continue  # 会结束本次循环,继续下一次循环

    print(f'吃了编号为{i}的苹果')

五、案例(提供while和if;两种解决方法)

1、计算1到100的和

# 1 + 2 + 3 + 99 + 100
#  循环生成 1- 100 之间的数字
# 定义变量记录初始的值
my_sum = 0
i = 1
# while i <= 100:
#     # 求和
#     my_sum += i  # my_sum = my_sum + i
#     # 改变i的值
#     i += 1

# 将代码放在循环的缩进里边.还是外边,可以思考,这行代码想让他打印输出几次,如果只输出一次,放在外边,
# 如果想要多次输出,放在里边

for i in range(101):
    my_sum += i
print('求和的结果为', my_sum)

# 两种遍历方式

2、计算1到100的偶数和(两种办法)

# 偶数, 能被2整除的数是偶数  num % 2 == 0
#  循环生成 1- 100 之间的数字
# 定义变量记录初始的值
my_sum = 0
i = 1
while i <= 100:
    # 先判断数字是不是偶数,如果是偶数求和
    if i % 2 == 0:
        my_sum += i  # my_sum = my_sum + i
    # 改变i的值
    i += 1

# 将代码放在循环的缩进里边.还是外边,可以思考,这行代码想让他打印输出几次,如果只输出一次,放在外边,
# 如果想要多次输出,放在里边
print('求和的结果为', my_sum)
#  循环生成 1- 100 之间的数字
# 定义变量记录初始的值
my_sum = 0
i = 2  # 1-100 之间第一个偶数
while i <= 100:
    my_sum += i  # my_sum = my_sum + i
    # 改变i的值
    i += 2  # 保证每次的结果都是偶数

# 将代码放在循环的缩进里边.还是外边,可以思考,这行代码想让他打印输出几次,如果只输出一次,放在外边,
# 如果想要多次输出,放在里边
print('求和的结果为', my_sum)

3、while循环嵌套

# 操场跑圈 一共需要跑5圈
# 每跑一圈,需要做3个俯卧撑,

# 1. 定义变量记录跑的圈数
i = 0

while i < 5:
    # 2. 定义变量, 记录每一圈做了多少个俯卧撑
    j = 0
    # 3. 操场跑圈
    print('操场跑圈中.....')
    # 4. 做俯卧撑
    while j < 3:
        print('做了一个俯卧撑')
        j += 1
    # 一圈完整了,圈数加1
    i += 1

4、for循环嵌套

# 操场跑圈 一共需要跑5圈
for i in range(5):
    print('操场跑圈中')
    # 每跑一圈,需要做3个俯卧撑,
    for j in range(3):
        print('做一个俯卧撑....')

5、循环嵌套-打印正方形

n = int(input("请输入正方形的边长:"))
# n=5
# 3、打印n行的*
# 两次循环绑定的都是与n直接比较

j = 0
while j < n:
    i = 0
    while i < n:
        # 1. 打印一个*
        print("* ", end="")
        i += 1
    # 一行打印结束之后,需要让j+1,同时还需要换行
    print()  # 换行
    j += 1

# for 循环实现打印正方形
# 2、打印n行
for j in range(n):
    # 1、打印一行
    for i in range(n):
        print("* ", end="")
    print()

6、循环嵌套-打印三角形

n = int(input("请输入三角形的一边长:"))

# 2、定义变量,记录打印的行数
j = 1  # 将要打印第一行
while j <= n:
    # 1、定义变量记录一行打印的*个数
    i = 1  # 将要打印第一个
    while i <= j:
        print("* ", end="")
        i += 1
    print()
    j += 1


# for循环打印三角形
for i in range(n):  # 控制行数
    for j in range(i+1):  # i range(i) 不包含i,所以需要+1,控制一行打印的个数
        print("* ", end="")
    print()

六、循环else结构(重点!Python独有的)

for x in xx:
    if xxx:
        xx  # if 判断条件成立会执行
    else:
        xxx  # if 判断条件不成立,会执行
else:
    xxx  # for 循环代码运行结束,但是不是被 break 终止的时候会执行
    
需求:
    有一个字符串 'hello python', 想要判断这个字符串中有没有包含 p 这个字符,如果包含,就输出, 包含 p, 如果没有 p ,就输出,不包含

# 这里是Python独有的方法,可以直接for和else!
# 像Java,C 之类的,必须还需要一个变量才能做到!
# 为Python欢呼!!!
my_str = "hello python"
# my_str = "mingzhiyifu"

for i in my_str:
    if i == "p":
        print("包含p这个字符")
        # 已经判断出来包含了,是否还需要继续判断
        break

else:
    print("不包含这个字符")  # for 循环代码运行结束,但是不是被 break 终止的时候会执行

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

名之以父

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

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

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

打赏作者

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

抵扣说明:

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

余额充值