python学习笔记(3

条件判断

在python中,可以使用if语句进行条件判断。例如
if a > b:
print('a是b的大哥')
与Java中一样,可以使用else进行否则判断,表示if为true,不执行else中的语句,if为false,执行else中的语句

ps:在if else后必须跟上冒号:。else用法与Java中大致相同,但是需要进行else if 判断时,需要使用关键字elif。例如
if a > b :
print('a让b叫大哥')
elif b > a:
print('b让a叫大哥')
else:
print('他两人一样大')

if判断条件还可以简写,例如:
if x:
print('x is true')
其中,只要x是非零数值、非空字符串、非空list,就判断为true,否则为flase

input
input()返回的数据类型是str,当我们需要输入一个整数进行判断时,就需要先将input()的输入值转换为整数,所以需要int()函数来进行转换


循环


在python循环有两种,一种是for...in循环,另一种是while循环

for...in循环
example:
names = ['mike','cale','jack']
for name in names:
print(name)

for x in ... 循环就是将每个元素代入变量x,然后执行缩进块的语句。

example:
sum = 0
for x in [1,2,3,4,5,6,7,8,9,10]:
sum = sum + x
print(sum)

如果需要较大的整数序列相加,可以使用range()函数
注:range()函数表示生成一个从0开始的整数序列,在通过list()函数转为list。
list(range(5))
[0,1,2,3,4]


while循环
条件满足就不断循环,条件不满足时就退出循环。
L = [1,2,3]
n = 0
while n < len(L):
print(L[n])
n=n+1
在循环中n不断增加,当n不在满足小于L的长度时,循环退出

break
在循环中,break语句可以提前退出循环
example:
n = 1
while n <= 100:
if n > 10:
break
print(n)
n = n + 1
print('END')
该循环会在n打印10后退出打印end,由此可见,break可以提前结束循环。


continue
在循环过程中,也可以通过continue语句,跳过当前的这次循环,直接开始下一次循环
example:
我们只想打印1-10的奇数,可以使用如下代码
n = 0
while n <= 10
n = n + 1
if n % 2 = 0:
continue
print(n)

 

 

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

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

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

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

 

dict
Python内置了字典:dict dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储
,具有极快得查找速度
example:
如果需要查询学生的姓名和对应的成绩,可以使用dict进行实现
>>>d = {'mack':90,'jack':89,'calt':100}
>>>d['mack']
90

原理:
根据key值算出value的存放内存位置,实现快速取值

除了取值,还可以通过key放入值
>>>d['bob'] = 92
>>>d['bob']
92

由于一个key只能对应一个value,多次对一个key放入value,会将前一个value替换掉
如果key值不存在,dict会报错,报错提示:KeyError:'key值'

为了避免key不存在的错误,有两种办法,一是通过in判断key是否存在
>>>'timo' in d
false
二是通过dict提供的get()方法,如果key不存在,可以返回None,或指定的value
>>>d.get('timo')#返回None
>>>d.get('timo',-1)
-1

要删除一个key,可以使用pop(key)方法,对应的value也会删除

dict的特点
1.查找和插入的速度极快,不会随着key的增加而变慢
2.需要占用大量的内存,内存浪费多
list的特点
1.查找和插入的时间随着元素的增加而增加
2.占用空间小,浪费内存少
所以dict是一种以空间换取时间的一种方法

关于使用dict
dict中最重要的就是key值必须是不可变对象
因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,dict的存在就没
有意义,而通过key计算位置的算法被称为哈希算法(hash)。
要保证hash值得正确,作为key的对象就不能改变。在Python中,字符串、整数等都是不可变的,因此
,可以放心的作为key,而list是可变的,就不能作为key


set
set与dict类似,也是一组key集合,但不存储value。由于key不能重复,所以,在set中,没有重复的
key。
要创建一个set,需要提供一个list作为输入集合:
>>>s = set([1,2,3])
>>>s
{1,2,3}
在set时,元素重复会被自动过滤掉,冰泉显示顺序也不表示set是有序的

通过add(key)方法可以添加元素到set中,可以重复添加,但是无效果
s.add(4)
通过remove(key)方法可以删除元素
s.remove(4)

set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集并集等操

>>>s1 = set([1,2,3])
>>>s2 = set([2,3,4])
>>>s1 & s2 #交集
{2,3}
>>>s1 | s2
{1,2,3,4} #并集

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

关于不可变对象
始终记住对于不变对象来说,调用对象自身的任意方法,都不会改变改对象自身的内容,而且,这些方
法会创建新的对象并返回,始终会保持不变对象的本身始终不变

转载于:https://www.cnblogs.com/47Knife/p/10368712.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值