MENU

python基础(二)

• January 26, 2018 • Read: 115 • Code

classmate = ['陈某某', '胡某某', '彭某某', '王某某']
print(classmate)
print(classmate[2])
classmate[0] = '陈涛涛'
print(classmate[-1])#打印倒数第一个也就是相当于最后一个,以此类推(注意不能越界)
print(classmate[-2])#打印倒数第二个
print(classmate)#Python内置的一种数据类型是列表:list。list是一种有序的集合,
# 可以随时添加和删除其中的元素。相当于C、Java中的数组
grade = ['第一名', '第二名', ['第三名', '第四名']]
print(grade[2][1])
p = ['第五名', '第六名']
grade  = ['第一名', '第二名', p]
print(grade)
print(grade[2][1])#这边相当于二维数组
grade.append('第七名')#在list的末尾插入元素
print(grade)
grade.insert(2, '第三名')
grade.insert(3, '第四名')#将元素插入到指定的位置
print(grade)
print(len(grade))#输出这个list的长度
grade.pop(5)
print(grade)#删除第五个位置的元素
classmate = ('CYT', 'YCL', 'HHW', 'WYZ')#tuple另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改
print(classmate)
y = 1
print(y)
y = (1,)
print(y)#定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。
# 所以,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义
c = (0, 1, 2, 3, 4, [5, 6])
print(c)
c[5][0] = '想不到吧,我可变哦'
print(c)#表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,
# tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!

list和tuple相当于其他编程语言中的数组,list中的元素是可以改变的,而tuple中的元素是不能改变的。他们能实现一维数组到多维数组。其中tuple中的不可变是指指向元素位置不变,如果它元素的指向是list,那么list本身是可变的。

python中的条件判断

a = 18
if a > 20:
    print('你是个男人')
elif a > 16:
    print('你是半个男人')
else:
    print('你是个小男孩')#注意冒号
grade = input('在这里输入学生的分数:')
grade = int(grade)
if grade > 90:
    print('学生的等级是A ')
else:
    print('学生的等级是B')#通过input来输入变量的值,这是因为input()返回的数据类型是str,str不能直接和整数比较,必须先把str转换成整数。
# Python提供了int()函数来完成这件事情

python中的循环

classmate = ['AA', 'BB', 'CC', 'DD']
for x in classmate:
    print(x)#注意for后面写冒号
sum = 0
for x in [1, 2, 3, 4]:
    sum = x + sum
print(sum)#1到4的累加
sum = 0
for x in range(101):
    sum = sum + x
print(sum)#range()函数,可以生成一个整数序列,再通过list()函数可以转换为list。比如range(101)生成的序列是从0开始小于100的整数,共101个数
a = range(6)
n =0
while n < 6:
    print(a[n])
    n = n + 1#注意while后面的冒号
b = range(101)
n = -1
sum = 0
while n < 100:
    n = n + 1
    sum = sum + b[n]
print(sum)#用white累加
n = 0
while n < 11:
    n = n + 1
    if n % 2 == 0:
        continue
    print(n)#continue在循环过程中,也可以通过continue语句,跳过当前的这次循环,直接开始下一次循环。
n = 1
while n <= 100: if n > 10: # 当n = 11时,条件满足,执行break语句
        break # break语句会结束当前循环
    print(n)
    n = n + 1
print('END')

循环是让计算机做重复任务的有效的方法。

break语句可以在循环过程中直接退出循环,而continue语句可以提前结束本轮循环,并直接开始下一轮循环。这两个语句通常都必须配合if语句使用。

要特别注意,不要滥用break和continue语句。break和continue会造成代码执行逻辑分叉过多,容易出错。大多数循环并不需要用到break和continue语句,上面的两个例子,都可以通过改写循环条件或者修改循环逻辑,去掉break和continue语句。

有些时候,如果代码写得有问题,会让程序陷入“死循环”,也就是永远循环下去。这时可以用Ctrl+C退出程序,或者强制结束Python进程。

dict和set

set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
d = {'陈某某': 59, '胡某某': 99, '姚某某': 99}
print(d['姚某某'])#Python内置了字典:dict的支持,dict全称dictionary,
# 在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。
d['彭某某'] = 98
print(d['彭某某'])#把数据放入dict的方法,除了初始化时指定外,还可以通过key放入
d['陈某某'] = 97
print(d['陈某某'])#由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉
print('王某某' in d)#要避免key不存在的错误,有两种办法,一是通过in判断key是否存在
print(d.get('chenmoumou'))
print(d.get('chenmoumou', -1))#通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value
d.pop('陈某某')#删除一个key
print(d)
a = set(['陈某', "姚某", '胡某某'])#set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,
# 所以,在set中,没有重复的key。要创建一个set,需要提供一个list作为输入集合
print(a)
a.remove('陈某')#通过remove(key)方法可以删除元素
print(a)
a.add('姚某')#重复元素在set中自动被过滤。通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果
print(a)