if…语句
age = int(input("请输入您的真实整数年龄:")) #从用户键盘输入,然后用if判断
if age >= 18:
print("我大了")
注意在这里的input没办法限制输入的内容,只能提醒用户输入
if语句:
格式: if 判断条件(布尔类型):
逻辑代码
执行流程:
当判断条件的结果为True时 执行逻辑代码
当判断条件的结果为False时 执行判断下面的代码
if语句有一点要注意,一定要注意用input输入的是str类型的,不是int, if条件判断的时候不要弄错
#第一种
age=int(input("请输入你的年龄"))
new_age=int(age)
print(type(age))
if new_age >= 18:
print("你是个大人咯")
#第二种
age=input("请输入你的年龄")
if age >="18": #为什么这里会是字符串啊
print("你是个大人咯")
if 1>2: # if语句的判断条件需要一个布尔值
print('1小于2')
if "hello": # if 判断条件后没有传入布尔值,会自动把它转换成为布尔值 只要条件通过,就会输出print
print("这段代码是否会输出呢? 答案是会")
if …else 语句
格式:
if 判断条件(布尔类型):
逻辑代码1
else:
逻辑代码2
执行流程:
当判断条件的结果为True时 执行逻辑代码1
当判断条件的结果为False时 执行逻辑代码2
if …elif …else语句
格式:
if 判断条件1(布尔类型):
逻辑代码1
elif 判断条件2(布尔类型):
逻辑代码2
....
else:
逻辑代码n
执行流程:
当判断条件1的结果为True时 执行逻辑代码1
当判断条件1的结果为False时 接着判断条件2
如果条件2成立 执行逻辑代码2 如果不成立 依次判断
所有的这些语句里面 只有一条逻辑代码是可以执行的
#else 和elif有啥区别
#elif必须和if一起使用,否则出错
#else 一般用在最后,即所有条件都不满足时使用
if嵌套
if 条件1:
满足条件1 做的事情1
满足条件1 做的事情2
if 条件2:
满足条件2 做的事情1
满足条件2 做的事情2
- 外层的if判断,也可以是if-else
- 内层的if判断,也可以是if-else
- 根据实际开发的情况,进行选择
三元运算符
格式: 变量 = 值1 if 条件 else 值2
当条件成立时把 值1 赋值给变量,条件不成立时把 值2 赋值给变量,其实就是对if…else 语句的一种简写。
比如
a = 1
b = 15
c = 14
if a > b and a > c:
print(a)
elif b > c:
print(b)
else:
print(c)
# 使用三元运算符求三个数中的最大值
print(a if (a > c and a > b) else (b if b > c else c))
while语句
while循环:
格式:
while 判断语句:
逻辑代码
for语句
for循环:
格式:
for 变量 in 字符串/列表/元组/集合/字典/range(start,end,step)(保证这些都是可迭代的):
逻辑代码
break和continue
语句跳转控制:
break: 跳出当前循环 执行循环外面的代码 (嵌套循环就会跳出break所在的那一层,当他的上一层还会继续运行)
continue:越过本次循环 继续下次循环
# 循环打印我是大帅哥这句话 当变量等于6的时候 结束打印
i = 1
while i <= 10:
i += 1
if i == 6:
continue
print("我是大帅哥%s" % i)
print("你不是帅哥")
# 不断的询问用户,"我爱你,你爱我吗?",只有用户回答"爱"时,结束循环。
while True:
s = input("我爱你,你爱我吗?")
if s == "爱":
print("好幸福")
break
while嵌套
while 条件1:
外循环代码块
while 条件2:
内循环代码块
内循环一旦开始,则要执行到条件2不满足,才会继续执行外循环的代码。
for…else
while 判断条件:
条件成立时,循环体代码
else:
条件不成立时,执行的代码
从上述结构中,我们可以看出,在非死循环中,正常情况下else里的语句都是会被执行的。那这个else语句到底有什么作用呢?一般情况下,循环语句和else共同出现时,在循环语句里都会配合break语句来使用。
程序正常结束的话,else就不会运行,但是当判断条件为false时, else就会出现,注意.break跳出的循环不会执行else
些许习题
### 9*9口诀表
#while循环
i=0
while i<=9:
j = 0
while j<i:
j += 1
print(f"{i}x{j}=", i*j, end="\t", sep="")
i+=1
print("")
#for循环法一
i=0
for i in range(1, 10):
for j in range(1, 10):
if j<=i:
print(f"{i}x{j}={i*j}", sep="", end="\t")
print()
#for循环法二
for i in range(1,10):
for j in range(1, i-1):
print(f"{i}x{j}={i*j}",end="\t")
print()
# 3x1=3
# 4x1=4 4x2=8
# 5x1=5 5x2=10 5x3=15
# 6x1=6 6x2=12 6x3=18 6x4=24
# 7x1=7 7x2=14 7x3=21 7x4=28 7x5=35
# 8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48
# 9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63
# 求1~100所有偶数的和
u=0
sum2=0
while u<100:
u = u + 1
if u%2 == 0:
sum2+=u
print(sum2)
else :
continue
# 求1~100的和
i=0 #1-100
sum=0 #和
while i<100:
i=i+1
sum+=i
print(sum)
print(i)
打印出所有的水仙花数 所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身,例如:153 = 1^3+5^3+3^3
#拿出个位数,十位数,百位数
a=99
count = 0 #计数器
while a < 999:
a += 1 #99-1000
b = a // 100 #百位
s = (a // 10) % 10 #十位
g = a % 10 #个位
if a == b**3+s**3+g**3:
count += 1
print(a)
print(count)
# 1.小娟的妈妈每天给她3元钱,她都会存起来,但是,每当这一天的天数是存钱的第6天或者6的倍数的话,她都会花去5元钱,
# 请问,经过多少天,小娟才可以存到100元钱
#思路:每天三块,if天数%6==0 money-5 循环次数不定,所以用while
#问题.为什么while循环 i=0 条件为i<9,却会执行10次 ,因为i=0 也执行了一次!!!!!!!!,
#执行第一次条件是0<9,执行第一次 第二次是1<9 第三次是2<9 第九次是8<9 第九次就是9<9 循环结束
days_money=3 #每天三块
moneys=0 #初始的金钱总额
days=0 #天数
while moneys < 100:
moneys += 3 #金钱每天三块
days += 1
if days % 6 == 0: #6的倍数就用五块
moneys-=5
print(f"所有的钱为:{moneys},用了{days}天")
#从键盘录入两个整数,判断两个数据是否相等,如果是就输出:相等,不是,输出不相等,只可以使用一条if语句完成
num1 = int(input("请输入数字1"))
num2 = int(input("请输入数字2"))
log="不相等" #定义log就是默认两个数字不相等
if num1==num2 :
log="相等"
print(log)
#3.键盘录入两个数据,输出两个数中较大的值,并输出结果
#方法一
a = int(input("请输入数字1"))
b = int(input("请输入数字2"))
if a>b:
print(a)
else:
print(b)
#方法二
a = int(input("请输入数字1"))
b = int(input("请输入数字2"))
print(a if(a>b) else b) #三元运算符
#8.教室高度:8848m,我现在有一张足够大的纸张, 厚度为:0.12m。请问,我折叠多少次,就可以保证厚度不低于教室的高度?
h=0.12 #初始高度
count=0
while h<8848:
count += 1
h *= 2 #每折一次 乘以2
print(h)
print(count)
print(0.12*(2**16)) #验证16次的高度
#10.找出 1 - 100之间所有的包含7或者被7整除的数字
num = 0
count = 0
while num<100:
num+=1
if num % 7 == 0 or num // 10 == 7: #个位数为7 or 十位数为7
count += 1
print(num)
print(f"共有{count}个")
# 打印1~100所有的质数。 质数的条件是除了1和它本身以外 不能被任何整数整除
for i in range(2, 100):
for j in range(2, i):
# 如果i % j是True 那么就会执行break 一旦执行break 那么else中的所有的代码都不再执行
# 当i % j一直没有被触发 那么内层循环自动结束 自动结束证明没有可以被整除的数据 那么i就是一个质数
# 就会去执行else里面的print()语句
if i % j == 0:
break
else:
print(i)