D3

dict字典

字典类型
映射是一种索引和数据的对应
比如:序列类型由0…N整数作为数据的默认索引
映射类型则由用户为数据定义索引
键值对:键是数据索引的扩展
字典是键值对的集合,键值对之间无序
采用大括号{}和dict()创建
形式为:<字典变量>={<键>:<值>,<键>:<值>,…<键>:<值>}
其中[]是用来向字典变量中索引或增加元素的
<值>=<字典变量>[<键>]、<字典变量>[<键>]=<值>

d={“中国”:“北京”,“美国”:“华盛顿”}
d
{‘中国’:‘北京’,‘美国’:‘华盛顿’}

d[“中国”]
‘北京’

de={};type(de)
<class’dict’>

空{}用于生成字典类型,而类似的集合类型虽然也用{…}表示,但只有使用set()函数来表示空集合
字典函数和方法
del d[k] 删除字典d中键k对应的数据
d.keys() 返回字典d中所有的键信息
d.values() 返回字典d中所有的值信息
d.items() 返回所有的键值对信息
d.get(k,) 键k存在,则返回相应值,不存在返回default
d.pop(k,) 键k存在,则取出相应值,不在则返回default
d.popitem()随机从字典d中取出一个键值对,以元组的形式返回

集合类型

1.集合类型
不能有相同元素,且不能存在可变元素
用{,}或者set(,)表示
无序排列
例如:

B=set(“pypy123”)
{‘1,’2’,’p’,’3’,’y’} #相同的元素将被删除(数据去重!)

s|t并运算
s-t差运算
s&t交运算
s^t补运算
及关系运算符(归属、子集判断)
集合增强操作符
S|=T更新集合S,包括ST内的所有元素
集合处理方法
S.add(x)
S.discard(x)
S.remove(x)若X不在集合中,则报错
S.clear()清除所有
S.pop()随机返回一个元素,若S为空则报错
S.copy()返回一个副本
Len(S)计算S中元素的个数
X in S
X not in S
Set(x)将其他类型转换为集合类型
1.

A={“p”,“y”,123}
for item in A:
print(item,end=‘’)#返回值是没有顺序的。

try:
while True:
print(A.pop(),end=“”)
except:
pass
p123y

A
set()

判断语句

单分支结构
if<条件>:
<语句块>

二分支结构
if<条件>:
<语句块>
else:
<语句块>
紧凑型
<表达式1>if<条件>else<表达式2>[不支持表达式]

多分支结构
if<条件1>:
<语句块>
elif<条件2>:
<语句块>
else:
<语句块>

条件判断及组合

程序的异常处理
异常处理:
try:
num=eval(input(“请输入一个整数:”))
print(num**2)
except NameError:
print(“输入的不是整数”)
或者
try:
<语句块1>
except:
<语句块2>

异常处理的高级使用
try:
<语句块1>
except:{发生异常执行}
<语句块2>
else:{未发生异常时执行}
<语句块3>
finally:{必定执行}
<语句块4>

实例BMI(Body Mass Index)=kg/m^2:

#CalBMI.py
height,weight=eval(input("请输入身高(米)和体重\(公斤)[逗号隔开]:"))
bmi=weight/pow(height,2)
print("BMI数值为:{:.2f}".format(bmi))
who=""
if bmi<18.5:
  who="偏瘦"
elif 18.5<=bmi<25:
  who="正常"
elif 25<=bmi<30:
  who="偏胖"
else:
  who="肥胖"
print("BMI指标为:国际‘{0}’".format(who))

三目表达式

python我搜了一下,好像没有像C语言中的三目表达式,
不过有判断语句的紧凑型:

<?>=<表达式1>if<条件>else<表达式2>

它的灵活性不太够,但能够节省空间,不支持表达式。

循环语句

遍历循环:
for<循环变量>in<遍历结果>:
<语句块>
字符串遍历循环
for c in “Python123”:
print(c,end=",")
------>P,y,t,h,o,n,1,2,3,

无限循环:
while<条件>:
<语句块>

循环控制保留字
break和continue[类似C,都可与for/while搭配]

循环的扩展
for<循环变量>in<>:
<>
else:<>
或者
while<条件>:
else:<>
else为完成循环的奖励,若程序中执行了break则不执行else,与异常处理中的else功能相似。
计算圆周率
# CalPiV1.py
pi=0
N =100
for k in range(N):
pi+=1/pow(16,k)(
4/(8
k+1)-2/(8k+4)-
1/(8
k+5)-1/(8*k+6))
print(“圆周率值是:{}”.format(pi))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值