Python学习笔记DAY3
Python的数据类型
数值类型
整形 布尔类型 浮点型
类型转化
整数int()
字符串str()
浮点数float()
获得关于类型的信息
type函数
>>> a='555'
>>> type(a)
<class 'str'>
>>> a=222
>>> type(a)
<class 'int'>
>>> a=5e19
>>> type(a)
<class 'float'>
isinstance()函数
>>> isinstance(a,int)
True
>>> a='zz'
>>> isinstance(a,str)
True
>>> a=5e11
>>> isinstance(a,float)
True
计算0.1+0.1+0.1-0.3
from decimal import Decimal
a=Decimal('0.1')
b=Decimal('0.1')
c=Decimal('0.1')
d=Decimal('0.3')
print(a+b+c-d)
python常用操作符
加减乘除 % **
// 取整除法
幂运算 ****
优先级问题
比较运算符比逻辑运算符优先度高
幂运算操作符比左侧优先级高,比右侧优先级低
>>> -3**2
-9
逻辑操作符
and or not
not 跟着一个操作数取相反类型
优先级问题
幂运算 正负号 算术操作符 比较操作符 逻辑运算符(not>and>or) 优先级从高到低
求1000以内偶数和
count=1
num=0
while count<1000:
if count%2==0:
num+=count
count=count+1
print(num)
求舍罕王失算问题
num=0
count=0
while count<64:
num=2**count
count+=1
print(num)
分支和循环
elif
python可以避免悬挂else,python缩进解决了这个问题
条件表达式(条件操作符)
small = x if x<y else y
如果x小于y输出x,反之亦然
断言 assert
assert 这个关键字后边的条件为假时,程序自动崩溃并抛出AssertionError的异常
程序植入检查点,当确保程序中某个条件一定为真才可让程序正常工作。
循环
while 循环
for循环
语法:for 目标 in 表达式:
循环体
range()
range([start,]stop[,step=1])
两个关键的语句
break continue
break终止循环跳出循环体
continue 终止本轮循环并开始下轮循环,开始时测试循环条件为true开始循环
练习:设计一个验证用户密码程序,用户只有三次机会输入错误,不过如果用户输入的内容中包含"*"则不计算在内。
总结
有bug,不知如何改进,第一次故意输错密码,第二次输入带星号的密码,就会陷入死循环
str=input('密码:')
count=0
temp=0
result ='*' in str
while count<3:
if result == True:
count=temp
if str!='120':
print("重新输入")
str=input('密码:')
temp=count
continue
else :
print('密码正确')
break
continue
else:
if str!='120':
print("cc")
str=input('密码:')
break
else :
print('密码正确')
break
continue
count+=1
temp=count