一、输出
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结构,就是多重判断的书写方式
需求:
需求:
-
成绩大于等于90 ,输出优秀
-
成绩大于等于80,小于90,输出良好
-
成绩大于等于60,小于80,输出及格
-
小于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 终止的时候会执行