当前位置: 首页 > 后端技术 > Python

初识python【今天开始写代码】第三课

时间:2023-03-26 18:01:09 Python

参考来源:Vitu.AI今天我们就来看看Boolean的用法。Python中的布尔类型由两个常量True和False表示。x=Trueprint(x)print(type(x))与上面将True赋值给x的例子不同。我们通常不会在代码中直接放入True和False,而是通过一些计算和比较得到布尔值,即True和False。比较+布尔值=?操作说明a==ba等于baba大于ba<=ba小于等于ba>=ba大于等于ba!=ba不等于bdefcan_run_for_president(age):"""给定年龄的人可以在美国竞选总统吗?"""#美国宪法规定你必须“已满35岁”returnage>=35print("Cana19-year-oldrunforpresident?",can_run_for_president(19))print("45岁的人能竞选总统吗?",can_run_for_president(45))对比python本身,对比操作会更智能一些。比如可以判断float和int两种类型的值。3.0==3但也不那么聪明。比如无法判断str和int的值。'3'==3比较运算可以与我们已经看到的算术运算相结合,以表达几乎无限范围的数学测试。例如,我们可以通过检查除以2后余数是否为1来判断一个数是否为奇数:defis_odd(n):return(n%2)==1print("Is100odd?",is_odd(100))print("Is-1odd?",is_odd(-1))记得在比较时使用==而不是=。如果你写n==2,你问的是n的值。如果你写n=2,你就是将2赋值给n。复合+布尔=?在Python中,布尔值可以进行三种运算:或、与、否。与许多语言不同,Python不使用符号,而是使用英文单词来表示它们,即or、and、not。让我们看另一个例子:defcan_run_for_president(age,is_natural_born_citizen):"""给定年龄和公民身份的人可以在美国竞选总统吗?"""#美国宪法规定你必须是天生的公民*and*至少35岁返回is_natural_born_citizenand(age>=35)print(can_run_for_president(19,True))print(can_run_for_president(55,False))print(can_run_for_president(55,True))下面我们一一分析。我们设立它是为了让35岁及以上的美国公民可以竞选总统。print(can_run_for_president(19,True))是问一个19岁的美国公民是否可以竞选总统,答案是False。print(can_run_for_president(55,False))问的是55岁的非美国公民是否可以竞选总统,答案是False。print(can_run_for_president(55,True))是在问一个55岁的美国公民是否可以竞选总统,答案是True。让我们猜猜下面这行代码的输出:TrueorTrueandFalse在python中,运算优先。在上面的代码中,and比or具有更高的优先级。具体来说,在上面的代码中,python会先判断True和False的部分,得到False的结果。然后结合前面的部分判断True或False,得到最终结果True。我们可以记住操作的优先级,或者用括号来表示,这样更安全。例如:prepared_for_weather=have_umbrellaorrain_level<5andhave_hoodornotrain_level>0andis_workday上面的代码看起来一团糟。我实际上是想说今天的天气在三种情况下对我来说是安全的:如果我有雨伞......如果雨不是太大而且我碰巧穿着套头衫............如果下雨了,不是工作日(节假日可以宅在家里,下不下雨不影响我)但是不仅我的python代码难读,而且第三种情况下的判断逻辑也是一个bug.所以我们可以通过添加一些括号来解决这两个问题:prepared_for_weather=have_umbrellaor(rain_level<5andhave_hood)ornot(rain_level>0andis_workday)我们也可以打破这条线,让三种情况看起来更清楚:prepared_for_weather=(have_umbrellaor((rain_level<5)andhave_hood)or(not(rain_level>0andis_workday)))条件语句+布尔值=?虽然布尔值本身很有用,但是当与条件语句结合使用时,即与关键字if、elif、else结合使用时,才是布尔值发挥更大作用的时候。例如:definspect(x):ifx==0:print(x,"iszero")elifx>0:print(x,"ispositive")elifx<0:print(x,"ispositive"")negative")else:print(x,"isunlikeanythingI'veeverseen...")inspect(0)inspect(-15)与其他语言类似,python也使用if和else;而关键是python独有的词是elif,是“elseif”的简写,用来表示条件判断的不同情况。在这些条件从句中,elif和else是可选的;其中,我们可以包含任意数量的elif语句.我们需要特别注意使用冒号(:)和空格来表示单独的代码块。这类似于我们定义函数时发生的情况。函数头以冒号(:)结尾,后面的行缩进4个空格。所有后续的缩进行都属于函数体,直到我们遇到一个未缩进的行,它结束函数定义。deff(x):ifx>0:print("Onlyprintedwhenxispositive;x=",X)print("同样只在x为正时打印;x=",x)print("Alwaysprinted,Regardlessofx'svalue;x=",x)f(1)f(0)如何解释上面的代码?当我们输入f(1)时,因为它满足x>0的条件,会分别打印三行的内容;当我们输入f(0)时,因为不满足x>0的条件,所以只会打印第一行三行的内容;布尔值转换之前我们学习了int(),这个函数将所有值转换为整数,float()函数将所有值转换为浮点数,即值好吧,可以想象python也有一个bool()函数,可以把东西变成布尔值。#除了0之外的所有数字都被认为是真的print(bool(1))print(bool(0))#除了空字符串""之外所有的字符串都被认为是真print(bool("asf"))#通常是空序列(字符串,列表和我们还没有见过的其他类型,如元组)是“假”,其余的是“真”)print(bool(""))在if的条件语句中,我们也可以使用非布尔值直接,python会默默的把这些值当成对应的布尔值。if0:print(0)elif"spam":print("spam")上面代码中,因为0默认为False,所以如果判断不为真,会自动进入elif的判断;又因为“spam”不为空字符串,默认为True,所以判断为真,所以最终输出的是“spam”。条件的表达在python中,通过条件语句给一个变量在不同的情况下赋不同的值是很常见的。defquiz_message(grade):如果grade<50:outcome='failed'else:outcome='passed'print('You',outcome,'thequizwithagradeof',grade)quiz_message(80)除了以上的表达方式,if的条件语句也有一行的方便表达。让我们来看看。defquiz_message(grade):outcome='failed'ifgrade<50else'passed'print('You',outcome,'thequizwithagradeof',grade)quiz_message(45)原文地址:初始python[今天开始写代码]第3课