循环
1、Python中的循环,有“while”循环和“for”循环两种。
2、“for”循环不同于C/C++/Java的“for”循环,Python的“for”循环需要列表(list)或者元组(tuple)做辅助之用,且循环条件判断是“是否到达列表或者元组的末尾,到达即退出”。
3、使用“for”循环时,如有二维列表或二维元组,单重循环只对一维形态下的元素有效。此时请使用双重循环。
4、使用“for”循环时,如需计数判断,类似C/C++/Java中的“for (int i = 0; i <= 100 ; i++)”时,需要通过“rang()”函数生成一个从0开始,参数减1为止的整数序列,可以直接使用,也可转换成列表或者元组。请记住,“rang(101)”是“0~100”,“i 小于等于100”,“i 小于101”。
5、“while”循环基本同C/C++/Java,判断条件可以为值,可以为表达式。
6、“break”和“continue”的用法基本同C/C++/Java。“break”跳出与其相离最近循环;“continue”是提前结束本轮循环,进入下一轮。
names = ["Seven", "Jack", "Ace", "Taro"]
for name in names:
print(name)
print("\n")
classmates = ("A", "B", ("C", "D"))
for classmate in classmates:
print(classmate)
print("\n")
for classmate in classmates:
for classmate_in in classmate:
print(classmate_in)
print("\n")
sum = 0
print("请计算1~100的和")
# for i in range(101):
# for i in list(range(101)):
for i in tuple(range(101)):
sum += i
print("结果为:%d" % (sum))
print("\n")
sum = 0
n = 100
while n > 0:
sum += n
n -= 1
# while 1:
# sum += n
# n -= 1
# if n == 0:
# break
print("n从100到0,sum = %d" % (sum))
print("\n")
n = 0
n = 0
while n < 10:
n += 1
if n % 2 == 0:
continue
print(n)
dict
1、“dict”,全称是“dictionary”,也就是字典。其他语言中也称作“map”。采用“键-值”(key-value)存放的方式。是“键”的集合。只是存入“键”的时候,会存入与“键”对应的“值”。
2、定义用大括号定义“{}”,“键-值”一一对应。使用时则用“[]”方括号,内部只能放“键”。
3、添加新数据,可以直接“键-值”对应赋值放入。
4、修改某个“键”对应的“值”时,原来的“值”将不做保存,直接覆盖。
5、通过“键”取“值”,如果“键”不存在,则会报Error。
6、通过“‘键’ in your_dict_name”的方式,可以判断该“键”是否存在,存在返回“True”,不存在返回“False”。
7、判断存在,还可以通过“your_dict_name.get(‘键’)”的方式,存在返回“值”,不存在默认返回“None”,也可以返回自定义值,即“your_dict_name.get(‘键’, “自定义值”)”。
8、删除一个“键”,调用“pop()”的方法,“your_dict_name.pop(‘键’)”来删除“键”,同时“键”对应的“值”也会同时删除。
9、相对“列表(list)”来说,“dict”的查找和插入速度快,同时不会随数据增多而变慢,但是占用内存大,内存浪费多。所以“dict”采用空间换时间。
10、“dict”的“键”不可变,可以是固定的整数、字符串,但是不可以为“列表”。
dict_name_score = {'Seven': 95, 'Jack': 90, 'Ace': 80}
print("dict_name_score: %s" % (dict_name_score))
print("dict_name_score['Seven']:%d" % (dict_name_score['Seven']))
# Error,[]内只能是键值,key
# print("dict_name_score[1]:%d" % (dict_name_score[1]))
print("\n")
dict_name_score['Taro'] = 75
print("dict_name_score['Taro'] = 75")
print("dict_name_score['Taro']:%d" % (dict_name_score['Taro']))
print("\n")
dict_name_score['Ace'] = 85
print("dict_name_score['Ace'] = 85")
print("dict_name_score['Ace']:%d" % (dict_name_score['Ace']))
print("\n")
if 'Leo' in dict_name_score:
print("dict_name_score['Leo']:%d" % (dict_name_score['Leo']))
else:
print("'Leo' in dict_name_score return is %s" % ('Leo' in dict_name_score))
print("\n")
if dict_name_score.get('Seven'):
print("dict_name_score.get('Seven'): %d" % (dict_name_score['Seven']))
else:
print("dict_name_score.get('Seven') is return %s" %
(dict_name_score.get('Seven')))
print("\n")
if dict_name_score.get('Leo', -1) != -1:
print("dict_name_score.get('Leo', -1): %d" % (dict_name_score['Leo']))
else:
print("dict_name_score.get('Leo', -1) is return %d" %
(dict_name_score.get('Leo', -1)))
print("dict_name_score.get('Leo') is return %s" %
(dict_name_score.get('Leo')))
print("\n")
dict_name_score.pop('Seven')
print("dict_name_score.pop('Seven')")
print("dict_name_score:%s" % (dict_name_score))
print("\n")
set
1、“set”和“dict”类似,均为“键”的集合。但是,“set”并不保存跟“键”相对应的“值”。
2、“set”中的“键”不能单个取出使用。可以集体输出。
3、生成“set”时,需要一个“list”或者“tuple”做“键”导入。但是,“list”本身不可以作为“键”,“tuple”可以。
4、“set”内部的“键”属于无序不重复序列,可以看成是数学上的“集合”。而且,这个“无序”完全就是看心情,很随性的“无序”。
5、“add()”和“remove()”分别可以添加和删除“set”中的“键”。添加和删除成功均返回“None”,添加已存在和不存在都是“None”,但是,删除已存在是“None”,删除的“键”不存在则直接Error。
6、“set”可以做“取交集”、“取并集”的操作,“交集”是“&”运算、“并集”是“|”运算。
7、同样的,“set”的“键”不可以是“list”,其“键”是导入“list”内部元素的,而非“list”。
set_name = set([1, 2, 3])
print("set_name:%s" % (set_name))
print("\n")
list_name = [2, 4, 3, 7, 8]
# print("list_name:%s" % (list_name))
set_name_list = set(list_name)
print("set_name_list:%s" % (set_name_list))
print("\n")
set_name_list_other = set([2, 4, 3, 7, 8])
print("set_name_list_other:%s" % (set_name_list_other))
print("\n")
list_name_unOrder = [3, 7, 7, 8, 5]
# print("list_name_unOrder:%s" % (list_name_unOrder))
set_name_unOrder = set(list_name_unOrder)
print("set_name_unOrder:%s" % (set_name_unOrder))
print("\n")
set_name_unOrder_other = set([3, 7, 7, 8, 5])
print("set_name_unOrder_other:%s" % (set_name_unOrder_other))
print("\n")
t1 = (1, 2)
t2 = (3, 2)
st1 = set(t1)
st2 = set(t2)
st = set([t1, t2, 3])
print("st1:%s" % (st1))
print("st2:%s" % (st2))
print("st:%s" % (st))
print("\n")
set_name.add(4)
set_name.remove(4)
print("set_name.add(4) is return %s" % (set_name.add(4)))
print("set_name.add(4) again is return %s" % (set_name.add(4)))
print("set_name:%s" % (set_name))
print("\n")
set_name.add(4)
print("set_name.add(4) again")
print("set_name:%s" % (set_name))
print("\n")
set_name.remove(4)
set_name.add(4)
print("set_name.remove(4) is return %s" % (set_name.remove(4)))
# print("set_name.remove(4) again is return %s" % (set_name.remove(4)))
print("set_name:%s" % (set_name))
print("\n")
s1 = set([1, 2, 3])
s2 = set([3, 4, 7, 8])
print("s1 & s2:%s" % (s1 & s2))
print("s1 | s2:%s" % (s1 | s2))
print("\n")
不可变对象
1、“list”有个排序操作“sort()”。因为“list”是可变对象,所以存在这个操作。
2、“变量指向对象”。只能改变指向,无法改变对象本身。
3、对字符串操作,只是在原来字符串的基础上,额外生成了新的字符串。如下面代码所示。
a = [4, 2, 1, 5]
a.sort()
print("a:%s" % (a))
print("\n")
b = 'abc'
b.replace('a', 'A')
print("b.replace('a', 'A'):%s" % (b.replace('a', 'A')))
print("b:%s" % (b))
print("\n")
c = b.replace('a', 'A')
print("b:%s, c:%s" % (b, c))