【Hello Python World】Class Notes of Week 3

条件语句(3.19 update)

1.tab不等于4个空格

cars = ['a', 'b', 'c']
for car in cars:
    if car == 'a' #如果写成 car = 'a'会报错(C++不会)
        print("A!") #print前是一个tab键
        print("Next") #print前是四个空格
    else:
        print("Not A")
#结果是语法报错:tab != 4' '       

要求:用四个空格代替缩进

2.Python的bool变量

首字母是大写的:TrueFales
x = True #可以
x = true #编译报错
支持用数字充当布尔变量:0时为False其余是True
判断列表是否为空
li = []
if li:
    print("Not empty!")
#输出 Not Empty
and代替C++中的&&,用or代替||,用not代替!(!=还是可以直接用的)
x = 10
x >=5 && x < 20 #编译报错,识别不了"&&"
x >= 5 and x < 20 #编译通过,输出 True
x != 9 #输出True
!(x==10) #编译报错,识别不了"!"
not (x == 10) #输出 False

4.检查特定的值是/否在列表中

li = ['a', 'b', 'c']
'a' in li   
#输出 True
'a' not in li # not 'a' in li 也是可以的
#输出 False

这种用法省去了遍历循环的结构,使得代码更加清晰

Ilike = ['a', 'b', 'c']
Ihave = ['c', 'd', 'e']
for have in Ihave:
    if have in Ihave:
        print("I like and I have!")
    else:
        print("I like but I don't have")

5. if-elif-else结构

li = ['a', 'b', 'c']
if 'a' in li :
    print("A in")
elif 'b' not in li 
#输出 False

字典(3.21 update)

6.元组用(),列表用[],字典用{}

6.1 字典里的元素规格是Key:Value,Key和Value的类型可以不统一,相当于C++里的struct

{'mame':'JP', age:3}
一个字典变量:student = ['name':'Bob' , 'age':18]

dict = {'a':1, 'b':2, 'c':3}
print(dict['a']) #输出 1
dict['a'] = 10
print(dict['a']) #输出 10
6.4 字典的键不能重复,虽然不会报错,但是执行结果是将后一个值更新前面的值
{'a':1,'a':2}
#输出 {'a': 2}
6.5 键对类型有要求:不能使用列表集合字典作为列表的键(但是可以作为值),因为不能被hash
(1,2,3).__hash__()
#输出 -378539185
{1,2,3}.__hash__()
#输出
# Traceback (most recent call last):
#  File "<stdin>", line 1, in <module>
#TypeError: 'NoneType' object is not callable
6.6 Python里的集合:用{}(不过是一元的),比如{'a', 'b', 'c'}

7.“俚语”:if代替C++的三元运算符: ?

x = 1 if 5%3 == 0 else 0 #一定要有else否则会报错
print(x)
#输出:0

8.对字典的操作

8.1 字典的遍历
scores = {'alice':95, 'bob':98, 'cathy':97}
#方法1
for key, value in scores.items():
    print(key + ' ' + str(value))
#输出:
#cathy 97
#bob 98
#alice 95

print(scores.items())
#输出 [('cathy', 97), ('bob', 98), ('alice', 95)],元组的列表

#方法2
for key in scores.keys():
    print(key.title())
#输出:
#Cathy
#Bob
#Alice

print(scores.keys())
#输出 ['cathy', 'bob', 'alice']

#方法3
for value in scores.values():
    print(value)
#输出:
#97
#98
#95

print(scores.values())
#输出: [97, 98, 95]
8.2 字典的插入、删除
dict = {'a':1, 'b':2, 'c':3}
#插入——直接地:
dict['d'] = [4,5,6]
print(dict)
#输出 {'a': 1, 'c': 3, 'b': 2, 'd': [4, 5, 6]}
#删除——del
del dict['d']
print(dict)
#输出 {'a': 1, 'c': 3, 'b': 2}
8.3 求字典长度len()和求和sum()
#求平均分
scores = {'alice':95, 'bob':98, 'cathy':97}
print(sum(scores.values()) / len(scores))
#输出 96 截尾
8.4 强制转化为集合(值是不重复的)
scores = {'alice':99, 'bob':99, 'cathy':99}
for score in set(scores.values())
    print(score)
#输出:99
8.5 判断字典是否为空
scores = {}
if scores:
    print('nonempty')
else:
    peint('empty')
#输出 empty
8.6 小例子1:单词计数
counts = {'jp':5, 'pj':3}
new_name = 'jp'
new_name_ = 'pp'
#counts['jp']++ 是错的,Python里不提供++操作
#正确写法:
counts[new_name] += 1
print(counts[new_name])
#输出 1

#counts[new_name_] += 1 是错的,提示没有这个键
#若想让没有的键可以插入,怎么做?
counts = {'jp':5, 'pj':3}
new_name = 'jp'
new_name_ = 'pp'
counts[new_name_] = 0 if new_name_ not in counts.keys() else counts[new_name_]
counts[new_name_] += 1
print(counts[new_name_])
#输出 1

9 字典和列表的互相/多重嵌套是允许的。

9.1 小例子2:列表×字典 = ?
stu1 = {'name':'jp', 'age':19, 'scores':{'math':98, 'chinese':99, 'english':97}}
stu2 = {'name':'pj', 'age':91, 'scores':{'math':89, 'chinese':99, 'english':79}}
stu3 = {'name':'pp', 'age':99, 'scores':{'math':88, 'chinese':99, 'english':77}}
stus = [stu1, stu2, stu3]
for stu in stus:
    print(stu['name'] + ' : ' + str( sum( stu['scores'].values() ) ))
#输出:
#jp : 294
#pj : 267
#pp : 264
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值