if 在对字符串进行判断时,首先对字符串的位进行逐一比较:
例如:字符串下的 "123" < "18",比较时,首位“1”先 进行比较,然后对第二位“2”和“8”进行比较。
相关参照ASCII表,数字<大写字母<小写字母
【逻辑语句 or and not 进行if判断时拓展】
a = ((变量1)or (变量2) or (变量3)or ...)
print(a)
当“变量1”为“True”时,a的值取“变量1”,当“变量1”为“False” 而“变量2”为“True”时,a取值于 “变量2”,
既,a 取值于第一个为“True”的变量,如果都为“False”,a的值为 0;
b = ((变量1) and (变量2) and (变量3)...(变量n))
print(b)
此种情况,当“变量1”为“False”时,b取值 0; 如果“变量1”为“True”而“变量2”为“Fasle”,则b取值为 0;
如果“变量1”和“变量2”均为“True”而“变量3”为“False”时,同样b依然取值 0;即,当变量中有“False”时,b取值为 0 ,当所有变量均为“True”时,b取最末尾的“变量n”的值!
if 进行比较“==”判断时,“==”左侧和右侧的变量要属于同一数据类型,str == str; int == int; float == float;bool == bool;不可以str == bool;
逻辑判断优先顺序-非>与>或;not > and > or
not进行转化时,会丢失数据类型,只保持数据的bool
eval拓展:
*eval("print(111)")输出111。注意:111不加"",加了eval会向下进行进行print函数,如果eval(print(iijsdfl))会报错,。eval函数中只解析一次字符串,对于字符串下的字符串无法解析。通常配合os使用。*
关于os:
import os
os.system("touch 新文件.py")
在当前项目下建立一个新.py文件。
也可以直接写成__import__('os').system('ls'),输入以后屏幕会显示当前项目下所有的文件名。
以后还会用到 __import__('os').system('vim')。
eval的特殊性:
eval 内不能 定义变量,不能创建变量进行运算。能完成数据类型的转换,转bool值时必须时“True”或“False”
关于eval:
egg:
a = eval("False")
print(type(a))
print(a)
输出结果是:<class 'bool'>
False
eval("print(1 + (3 * 2))") 输出7
*例如*买苹果案例中:
price = "12"
weight = "2"
eval(price + "*" + weight)
输出结果依然是24
l = input("请输入三角形的底长:")
h = input("请输入三角形的高:")
print(eval((l + "*" + h) + "/" + "2"))
print(eval(l + "*" + h) / 2) |
|