1.基本数据类型
(1)整型
(2)浮点型
(3)布尔型
当使用布尔型作为判断时,只会出输出True或False作为结果,当执行以下类型的判断时
bool(x) #x为整型数据
如果x的值为非零整型数据,则输出为True,如果为零,则结果为False,除开整型类的布尔判断,还有字符型的布尔判断。
2.1.1
a=bool(input())
b=bool(input())
print(a)
print(b)
在执行这段代码时,如果给a、b赋值True,或者给a、b赋值False,在输出的打印结果里都可以看到显示的结果为True,为什么呢?我们调整一下输入的方式,这次不输入任何内容,我们可以看到,打印输出的内容为False,一个基本的推测:当bool()赋值为空时,则为False,赋值非空则为True,尝试一下
2.1.2
a=''
b=chr(0)
print(bool(a))
print(bool(b))
执行上述语句可以发现,a的赋值为空的情况下所打印的输出布尔值为False,而b虽然将ASCII码的0号位的字符赋值给了b,但是bool类型并没有将该字符(chr(0))转化为ASCII对应的码值,即0,因为如果转换为0,按照布尔True和False的判断基准,为0则为False,则应该结果为False才对,由此可以看出,bool()只是判断赋值的字符串是否为空而已
(4)复数型
与前三类数据不同,复数型包含虚数,一般情况下Python默认虚数的长度为一时的值用j表示
2.1.3
a=3+4j #将虚数3+4j赋值给a,将a定义为虚数
print(type(a)) #输出a的数据类型,显示结果为complex
b=3 #b为整型
c=complex(b) #将b转化为复数型并赋值给c
print(c) #输出c,可以看到c的虚数部分为0
print(a+b) #一个复数和实数相加,虚数部分不变
由上可以看出,虚数部分只有在complex类型时或者是定义了虚数部分时才会起作用。
2. 三元表达式
2.2.1
a=3
b=4
c=a if a>b else b #如果a>b,则执行c=a,否则执行c=b
print(c)
c+=a if a>b else b #如果a>b,则执行c=a,否则执行c=b,然后执行c+=的操作
print(c)
c*=a+b if a<b else b #如果a<b,则执行c*=a+b即c=c*(a+b),否则执行c*=b,即c=c*b
print(c)
从上述代码我们可以发现一个基本的规律,在Python内,赋值表达式的执行是从右往左执行的,先进行等号右边的内容的处理,处理完毕后在处理等号左边的部分。
3.条件判断——if
在python内,if关键字起到了分支语句的作用,当if里面的条件满足时则执行if语句下的子代码,否则继续往下执行:
2.3.1
a=1
if a>1:
a+=1
print(a)
上述代码执行输出的结果为1,因为a=1时并不满足a>1的if条件,所以if语句的子代码并没有执行,这里需要对一个地方有清晰的了解,if语句在程序执行时,有代码的上部往下执行,当执行语句来到if语句时,会根据if的条件成立与否进行判断是否执行if语句下的子代码,如果满足则执行该部分代码,并且只会执行一次(if外面有嵌套循环的情况暂且不做讨论)。此外,if还会和else连用
2.3.2
a=3
if a>4:
print("a的值大于4")
else:
print("的值小于或等于4")
在这段代码中,else表示的是if条件不成的时候的所有情况,如果把if判断语句成立的所有情况看做一个集合,那么else则是if语句的非集,这两个集合构成了变量a的所有可能情况的总集合,所以if 和 else具有互斥性,上述代码解析为文字可以理解为当a>4不成立时则执行else的子代码。
4.循环——while、for
一般情况下,程序执行时,代码由上往下,当执行到if语句的判断时,该判断只执行一次,而如果需要进行多次判断,则需要使用循环。
2.4.1
a=0
while a<5:
print(a)
a+=1
else:
print(a)
在2.4.1的代码中,如果a的值不大于等于5,则会一直执行while里面的语句,我们称这种在一定条件下会反复执行的结构称之为循环,在这个循环中,只有当a的值等于5的时候回跳出循环,如图
在这个循环中,a最后的值为5.
需要注意的是,在循环结构中,循环判断条件中的变量需要有一个变化的过程,在本案例中,a的值只有在大于等于5的时候才会停止,所以a的值需要一个叠加的过程,如果a的值不变,那么这个循环会进入死循环,死循环在实际中也有不少的应用,但是目前的小案例很少用到。
如果使用for实现循环,则代码如下:
for a in range(0,5,1):
print(a)
else:
print(a)
在for循环中,range(0,5)表示的是循环范围,range()的括号中可以写三个值例如range(0,5,1),0表示循环开始的值,5表示循环结束时的值但不会等于该值,用数学表达式表示则是:
0<=a<5
1表示每次循环递增的量,当循环开始的值为0时可以不写,递增的量为1时也可以不写,即上述例子也可以写成
通过循环判断一个数是否是质数
for a in range(5):
print(a)
else:
print(a)
在for循环中,else里输出的a的值为4,for循环的值不会超过循环范围。
a=int(input("请输入一个大于1的整数"))
i=2
while i<a:
if a%i==0:
print("不是质数")
break
i+=1
if i==a:
print("是质数")
一百以内奇数相加,偶数相减的结果,即
1-2+3-4+5-6+7…99
i=1
num=0
b=1
while i<100:
num=num+i*b
print(i*b)
b=b*-1
i+=1
print(num)