2019-05-21

今天复习了一下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

  print('肥胖');

elif 25

  print('过重');

elif 18.5

  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)

你可能感兴趣的:(2019-05-21)