1、数据类型和变量
常见基本数据类型:整数、浮点数、字符串、布尔值、空值none。此外还有列表,字典以及自定义数据类型
字符串:\转义符,r默认不转义,'''...'''可打印多行文字,举例:
>>> print('\\\t\\')
\ \
>>> print(r'\\\t\\')
\\\t\\
>>> print('''line1
... line2
... line3''')
line1
line2
line3
2、占位符%
%运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略。举例:
占位符 %d %f %s %x
替换内容 整数 浮点数 字符串 十六进制整数
>>> 'Hi, %s, you have $%d.' % ('almira', 1000000)
'Hi, almira, you have $1000000.'
3、列表list和tuple
是Python内置的有序集合,一个可变,一个不可变。根据需要来选择使用它们。
list,可变有序列表,可随时增删其中元素等
创建列表--列出列表所有内容--显示列表长度--指定显示列表元素--列表末端添加元素--指定位置插入元素--删除末端元素--删除指定位置元素--修改指定位置元素--列表中的元素类型可不一致--二维列表(可更多维但不常见)--显示二维列表指定元素
>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates
['Michael', 'Bob', 'Tracy']
>>> len(classmates)
3
>>> classmates[0]
'Michael'
>>> classmates.append('Adam')
>>> classmates.insert(1, 'Jack')
>>> classmates.pop()
>>> classmates.pop(1)
>>> classmates[1] = 'Sarah'
>>> L = ['Apple', 123, True]
>>> s = ['python', 'java', ['asp', 'php'], 'scheme']
>>> len(s)
4
>>>s[2][1]
tuple ,不可变的有序列表,它也没有append(),insert()这样的方法。其他获取元素的方法和list是一样的。
定义tuple--定义空tuple--定义一个元素的tuple(必须加,号)--“可变tuple”
>>> t = (1, 2)
>>> t
(1, 2)
>>> t = ()
>>> t
()
>>> t = (1,)
>>> t
(1,)
>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])
4、条件判断
if语句执行从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elif和else
if语句的完整形式如下:
h=float(input('请输入你的身高'))
w=float(input('请输入你的体重'))
BMI_Code=w/h**2
if BMI_Code<18.5:
print('过轻')
elif BMI_Code>18.5 and BMI_Code<25:
print('正常')
elif BMI_Code>25 and BMI_Code<28:
print('过重')
elif BMI_Code>28 and BMI_Code<32:
print('肥胖')
else:
print('严重肥胖')
input()返回的数据类型是str,str不能直接和浮点数比较,必须先把str转换成浮点数。Python提供了float()函数来完成这件事情(整数用int()函数)
5、循环
A、for X in 循环,依次把每个元素带入到变量X,然后执行缩进块里的语句,举例:
names=["almira","mark","luci"]
for name in names:
print(name)
sum=0
-----------------------------------------------------------
for x in [1,2,3,4,5,6,7,8,9,10]:
sum=sum+x
print (sum)
Python提供一个range()函数,可以生成一个整数序列,再通过list()函数可以转换为list。比如range(5)生成的序列是从0开始小于5的整数:
>>> list(range(5))
[0, 1, 2, 3, 4]
-----------------------------------------------------------------
m=0
L=range(101)
for n in L:
m=m+n
print(m)
------------------------------------------------------------------
m=0
for n in range(101):
m=m+n
print(m)
'''
B、while循环,只要满足条件就会一直循环执行缩进块里的语句,不满足条件立即退出循环。举例依次打印100以内的奇数:
sum=0
n=1
while n<100:
sum=sum+n
n=n+2
print(sum)
-----------------------------------------------------------
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)
C、break可以直接结束循环,举例:
n=1
while n<100:
if n>10:
break
print(n)
n=n+1
print('end')
D、continue结束当前这次循环直接开始下一循环,举例(只打印10以内奇数):
n=0
while n<10:
n=n+1
if n%2==0:
continue
print(n)
6、字典dict和集合set
A、字典dict,使用键值对(key-value)存储。保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key
与list比较:
dict:
①、查找和插入的速度极快,不会随着key的增加而变慢;
②、需要占用大量的内存,内存浪费多
list:
①、查找和插入的速度的时间随着元素的增加而增加;
②、占用空间小,浪费内存很少
初始化dict:
d={'almira':27,'mark':22,'luci':39}
通过key插入值
d['smith']=34
删除key,用pop(key)方法,对应的value也会在dict中删除:
d.pop('mark')
两种方法避免key不存在的错误
①、通过in方法判断,举例:
print('mark' in d)
②、通过dict的get()方法判断,如果key不存在,可以返回None或者自己指定的value,举例:
d.get('Thomas')
d.get('Thomas', -1)
B、集合set
创建一个set,需要提供一个list作为输入集合,可以将s = set([1, 2, 3]) 中的 [1,2,3] 理解为set这个类型对其包含的数据的一个形式上的要求,这里并不是list作为set的key,而是list中的元素作为了set的key。
换句话说,无论你准备把任何东西装入set,它都必须先是一个list(或者tuple)的形式,甚至是空集,也得是 [ ] 。
>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}
s = set((1,[2,3])报错是因为把tuple列表扒开来是1,和list列表,list列表是可变的不可作为key
set增加元素---add(key)
可以重复添加但不会有效果,重复元素在set中会被自动过滤
>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s.add(4)
>>> s
{1, 2, 3, 4}
set删除元素---remove(key)
>>> s.remove(4)
>>> s
{1, 2, 3}
set可以看作数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作
>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
{2, 3}
>>> s1 | s2
{1, 2, 3, 4}
网友评论