今天复习了一下Python基础。
1. List 和 Tuple
List: L = [1,2,3,4,5,6], 有序的集合,可以添加或者删除元素。
元素个数: len(L)
元素定位:L[0]=1, L[-1]=6
添加元素到末尾:L.append(x)
插入元素到指定位置:L.insert(1, x)
删除末尾元素:L.pop(), pop(i)则为删除指定元素
多维数组
Tuple: T = (1,2,3,4,5,6), tuple一旦初始化就不能修改,也没有append(),insert()这样的方法,不能赋值成另外的元素。 因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。
定义一个空的tuple: t()
定义一个只有1个元素的tuple: t(1,)
2. 条件判断:
请根据BMI公式(体重除以身高的平方)来计算BMI指数,并根据BMI指数判断:
W = input('please input Weight:') ------设置”input“读取用户输入
H = input('please input Height:')
w = float(W) ------input()返回的数据类型是str,str不能直接和整数、浮点数比较,所以利用int(), 或者float()来转换成整数
h = float(H)
bmi = w/(h*h)
print(bmi)
if bmi > 32:
print('严重肥胖');
elif 28<bmi <= 32:
print('肥胖');
elif 25<bmi <=28:
print('过重');
elif 18.5<bmi<=25:
print('正常');
else:
print('过轻');
3. 循环:循环是让计算机做重复任务的有效的方法。
for循环: range(101)就可以生成0-100的整数序列
sum = 0
for x in range(101):
sum = sum + x
print(sum)
while循环:只要条件满足,就不断循环,条件不满足时退出循环
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)
break结束循环:n = 1
while n <= 100:
if n > 10: # 当n = 11时,条件满足,执行break语句
break # break语句会结束当前循环
print(n)
n = n + 1
print('END')
continue跳出循环进入下一次循环:
n = 0
while n < 10:
n = n + 1
if n % 2 == 0: # 如果n是偶数,执行continue语句
continue # continue语句会直接继续下一轮循环,后续的print()语句不会执行
print(n)
4. dic 和set
dic:dict可以用在需要高速查找的很多地方,在Python代码中几乎无处不在,正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象。
这是因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash)。
要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key:
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
把数据放入dict的方法: d['Adam'] = 67,由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉
如果key不存在:'Thomas' in d为False
d.get('Thomas')为None
删除一个key: d.pop('Bob')
和list比较,dict有以下几个特点:
查找和插入的速度极快,不会随着key的增加而变慢;
需要占用大量的内存,内存浪费多。
set: set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。试试把list放入set,看看是否会报错。set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key
添加元素到set中,可以重复添加,但不会有效果: s.add(4)
删除元素: s.remove(4)
网友评论