这篇文章主要记录最近我做的题,当然还有我自己的知识点。
蓝桥杯练习第一题(妮妮的翻转游戏)
题目:在蓝桥镇,妮妮发明了一个新的游戏-----翻转游戏。游戏中有一个开关,可以处于两种状态:开(用1表示)和关(用0表示)。妮妮发现,无论开关此时处于何种状态,他都可以通过一次操作使开关的状态翻转。现在,妮妮告诉你当前开关的状态为x,他想知道,如果他进行一次操作,开关的状态会变成什么。你能帮助他解决这个问题吗?
- 思路:我刚开始做这个题的时候,觉得它使个选择性的问题,而且只有两个选项可以选,所以我想到了用 if 开头的条件语句来做,但我一共想到了7种方法,拓展思维嘛。
- 答案如下:
第一种:
a = int (input())
if a == 1:
print(0)
if a == 0:
print(1)
运行结果:
第二种:
a = input()
if a == '1':
print(0)
else:
print(1)
运行结果同上
第三种:
a = int(input())
print(int(not(a)))
运行结果同上
第四种:
a = int(input())
print(a^1)
在此解释一下,这种方法是异或,主要公式:0 ^ 0 = 0 1 ^ 1= 0 0 ^ 1 = 1
运行结果同上
第五种:
a = int(input())
b = [1,0]
print(b[a])
运行结果同上
第六种:
a = int(input())
b = {1:0,0:1}
print(b[a])
第七种:
a = int(input())
print(int(a==0))
运行结果同上
七种方法如上所述,其实我觉得它们的原理都一样,只是形式不同而已。
接下来继续复习知识点!
if 判断语句/比较,关系运算符/if- else/if 嵌套
一.判断语句
生活中的判断场景
如果某些条件满足,才能让某件事情发生;若条件不满足,则该事情不发生。这就是所谓的判
断。
1.if
-
基本格式
命令逻辑:如果......就......
if 要判断的条件: # 条件后加英文冒号,回车后自动缩进
条件满足时,要做的事情
if 语句运行的原理就是:给出条件,判断下一步该怎么做。如果条件为真,则执行条件代码块
的内容,为假就推出。
# 在 python 中,任何非零,非空对象都是真,除真和None以外都是假
举例:
age = 30
if age > 18:
print("我已经成年了")
运行结果:
# if判断语句的作用:就是当满足一定条件时才会执行代码块语句,否则就不执行代码块语句。
# 代码的缩进为一个tab键,或者4个空格
# 因为input()返回的数据类型是str,str不能直接和整数比较,必须先把str转换成整数。
二.比较(关系,条件)运算符
算术运算符 + (加) -(减) *(乘) / (取商) //(取整) %(取余) **(次方)
赋值运算符 = += -= *= /= //= %= **=
== 检查两个操作数的值是否相等,如果是则条件变为真。
如a=3,b=3,则(a == b) 为 True
!= 检查两个操作数的值是否相等,如果值不相等,则条件 变为真。
如a=1,b=3,则(a != b) 为 True
> 检查左操作数的值是否大于右操作数的值,如果是,则 条件成立。
如a=7,b=3,则(a > b) 为 True
< 检查左操作数的值是否小于右操作数的值,如果是,则 条件成立。
如a=7,b=3,则(a < b) 为 False
>= 检查左操作数的值是否大于或等于右操作数的值,如果 是,则条件成立。
如a=3,b=3,则(a >= b) 为 True
<= 检查左操作数的值是否小于或等于右操作数的值,如果 是,则条件成立。
如a=3,b=3,则(a 为 True
>>> if a > b:
... print('成立')
... 成立
>>>
三.逻辑运算符
1.简要介绍
- 运算符 and
逻辑表达式 x and y
描述 布尔"与":如果 x 为 False,x and y 返回 False,否则它返回 y 的值
实例 True and False, 返回 False
- 运算符 or
逻辑表达式 x or y
描述 布尔"或":如果 x 是 True,它返回 True,否则 它返回 y 的值
实例 False or True, 返回 True
- 运算符 not
逻辑表达式 not x
描述 布尔"非":如果 x 为 True,返回 False 。如果 x 为 False,它返回 True
实例 not True 返回 False, not False 返回 True
2.例子及注释
a = 1
b = 2
if a == 1 and b == 2:
print('符合条件')
运行结果:
# and的优先级大于or,有括号的运算最优先
a = 3
if a < 10 or a > 1 and a > 4:
# if (a<10 and a>1) or (a>4 and a<8): 结果:对的
print('对的')
else:
print('错误')
运行结果:
优先级: 逻辑运算符的优先级:not>and>or
# not表示相反的结果,5>3的相反结果是5<3,not 5 < 3返回True
print(5 > 3 and 4 > 2 or not 5 < 3)
print(5 > 3 and 4 > 2 or not 5 > 3)
print(5 > 3 and 4 < 2 or not 5 > 3)
运行结果:
if - else
在使用if的时候,它只能做到满足条件时要做的事情。那万一需要在不满足条件的时候,做某些事,该怎 么办呢?
使用格式:
if 条件:
满足条件时要做的事情
else:
不满足条件时要做的事情
举例:
a = 1
if a == 1:
print('有车票,可以回家过节了')
else:
print('没有车票,下次再回家')
运行结果:
这篇就这样吧,下次继续。