python数据类型
数值型:
整型(python2中有整型和长整型的区别,长整型后面+L python3不做区分 可以做大数运算)
浮点
布尔(可认为是整数0,1) T F大写!!!非0的整数值也认为是True
科学记数法
>>> a=0.0000000000000000025
>>> print(a)
2.5e-18
>>> a=12332454313423
>>> print(a)
12332454313423
>>> a=1223435467658653455654346
>>> print(a)
1223435467658653455654346
>>> 15e10
150000000000.0
>>> true+true
Traceback (most recent call last):
File "<pyshell#21>", line 1, in <module>
true+true
NameError: name 'true' is not defined
>>> True+True(知道就好,正常人不这么用)
2
数据类型的转化截断是为了效率高
>>> a='520'
>>> b=int(a)
>>> b
520
>>> b=int('misszhou')
SyntaxError: invalid character in identifier
>>> a=5.99
>>> c=int(a)
>>> c
5
>>> a='520'
>>> b=float(a)
>>> b
520.0
>>> a=520
>>> b=str(a)
>>> b
'520'
>>> a=3.99
>>> b=str(a)
>>> b
'3.99'
>>> c=str(5e19)
>>> c
'5e+19'
>>> c=str(注意这个例子)
>>> b=str(c)
>>> b
"<class 'str'>"
>>> str="misszhou"
>>> str
'misszhou'
>>> c=str("1111")(为什么会返回这个结果呢?因为程序把str当成变量了orz )
Traceback (most recent call last):
File "<pyshell#46>", line 1, in <module>
c=str("1111")
TypeError: 'str' object is not callable
获得关于类型的信息
type()
>>> type(1e9)
<class 'float'>
Isinstance()
>>> isinstance("212",str)
True
>>> isinstance(1e9,float)
True
>>> isinstance(5,float)
False(也就是说,这里不可以转化,是啥就是啥)
>>> isinstance(1,bool)
False(居然bool也不可以)
常用操作符
运算操作符
+ - * / % ** // 也有+= -= /= *= %= 也可以xx=xx=xx=x
整数相除若不能整除可以得小数
如果我想得整数呢? //
>>> a=10
>>> a//=4
>>> a
2
还有**干嘛的?幂!优先级比左侧的一元运算符低,比右侧的一元运算符高
>>> -3**2
-9
>>> 3**2+4
13
运算符的优先级和其他语言一样
比较运算符
(见上面)
>>> 3<4>5
False
>>> 3<4<5
逻辑操作符
and or not
操作符的优先级:
幂运算、正负号、算数操作符、比较操作符、逻辑运算符
分支与循环
基础分支循环的流程etc不再介绍
If else elif 不要忘记“:”
score=int(input('请输入一个分数'))
if 100>=score>=90:
print("A")
elif score>=80:
print("B")
elif score>=70:
print("C")
elif score>=60:
print("D")
else:
print("E")
通过缩进控制~~
条件表达式(三元操作符)
(python2.5之后才有)
>>> a=2 if 2<3 else 3
>>> a
2
>>> a=2 if 2>3 else 3
>>> a
3
断言assert
当这个关键字后面的条件为假的时候,程序自动崩溃
循环
>>> name="MissZhou"
>>> for i in name
SyntaxError: invalid syntax
>>> for i in name:
print(i,end=' ')
M i s s Z h o u
>>> name=['zyj','2013','acm']
>>> for i in name:
print(i,end=' ')
zyj 2013 acm
>>> for each in name:
print(each,end=' ')
zyj 2013 acm
>>> for each in name:
print(each,len(each))
zyj 3
2013 4
acm 3
range([start,]stop[,step=1])
BIF:生成一个从start到stop结束的数字序列
>>> list(range(5))
[0, 1, 2, 3, 4]
>>> for i in range(5):
print(i)
0
1
2
3
4
>>> for i in range(2,9):
print(i)
2
3
4
5
6
7
8
>>> for i in range(1,10,2):
print(i)
1
3
5
7
9
break.continue
for i in range(10):
if i%2 != 0:
print(i)
continue
i+=2
print(i)
2
1
4
3
6
5
8
7
10
9