【每日一剂】python学习日记

xiaoxiao2021-02-28  141

初入python,记录python语法,以及python需要注意的地方

python2和python3语法有所区别,以及一些python2的库不能兼容python3,所以这里我只从python3开始记载。

Python代码的缩进规则。具有相同缩进的代码被视为代码块。

缩进请严格按照Python的习惯写法:4个空格,不要使用Tab,更不要混合Tab和空格,否则很容易造成因为缩进引起的语法错误。

--接收用户输入

input()

--输出语句

print("xxxxxx")

--if判断语句

if xx > xx:

    print("ss")

elif xxx<xx:

    print("heihei")

else:

    peint(2)

print("end")

--for循环

for xx in xx:     --循环数组

    print(xx)

print("end")

--while循环

while x<N:

    print("下一次循环")

print("退出循环了")

for 循环或者 while 循环时,如果要在循环体内直接退出循环,可以使用 break 语句。

在循环过程中,可以用break退出当前循环,还可以用continue跳过后续循环代码,继续下一次循环。

--数组list操作篇

L = ["a","b","c","d","e"]

L[0] == L[-2] == "a"

L[0:] == ["a","b","c","d","e"]

L[1] == L[-1] == "b"

L[0:3] == ["a","b","c"] == L[:3]

L[:] ==  ["a","b","c","d","e"]

L[::2] == ["a","c","e"]

L.append("qwer") --将qwer插入到list最后一个元素

L.insert(0,"qwer") --将qwer插入到索引为0的地方

L.pop()--删除数组最后一个元素

L.pop(2)--删除数组索引为2的元素

L[1]="tyy" --直接给数组为1的元素赋值或是直接替换数组为1的元素

range(5,1,-1) == [5,4,3,2]

--元组篇tuple(tuple与list非常相似,只是tuple一但创建就不能修改了,且由()替代了[] ,元组只能获取,不能添加删除)

T = (1,) --创建只有一个元素的元组时,需要在元素后面加上一个逗号,否则会被定义为一个整数

T = ("tyy","hyy") --多元素元组加不加最后的逗号无所谓,但是输出的时候python解释器会自动加上一个逗号

--dict对象篇

D  = {

'tyy'  :  999

'hyy'  : 888

}

D["tyy"] == D.get("tyy") == 999

dict 对象有一个 values() 方法,这个方法把dict转换成一个包含所有value的list,这样,我们迭代的就是 dict的每一个 value

d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 } d.values() == [ 95 , 85 , 59]

dict除了 values() 方法外,还有一个  itervalues()  方法,用  itervalues()  方法替代  values()  方法,迭代效果完全一样

那这两个方法有何不同之处呢?

1. values() 方法实际上把一个 dict 转换成了包含 value 的list。

2. 但是 itervalues() 方法不会转换,它会在迭代过程中依次从 dict 中取出 value,所以 itervalues() 方法比 values() 方法节省了生成 list 所需的内存。

3. 打印 itervalues() 发现它返回一个 <dictionary-valueiterator> 对象,这说明在Python中,for 循环可作用的迭代对象远不止 list,tuple,str,unicode,dict等,任何可迭代对象都可以作用于for循环,而内部如何迭代我们通常并不用关心。

 同理,dict 对象的 items() 方法,可以同时迭代key和values。和 values() 有一个 itervalues() 类似, items() 也有一个对应的 iteritems(),iteritems() 不把dict转换成list,而是在迭代过程中不断给出 tuple,所以, iteritems() 不占用额外的内存

dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。而list的查找速度随着元素增加而逐渐下降。

不过dict的查找速度快不是没有代价的,dict的缺点是占用内存大,还会浪费很多内容,list正好相反,占用内存小,但是查找速度慢。

由于dict是按 key 查找,所以,在一个dict中,key不能重复

dict的第二个特点就是存储的key-value序对是没有顺序的!这和list不一样

--set无序列表

s = set([a,b,c,c,d,d,e]) == set([a,b,e,d,c])

s.add(k) --添加元素到set中

s.remove(a) --删除set中的元素

a in s  == true

dict的作用是建立一组 key 和一组 value 的映射关系,dict的key是不能重复的。

有的时候,我们只想要 dict 的 key,不关心 key 对应的 value,目的就是保证这个集合的元素不会重复,这时,set就派上用场了。

set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。

--函数篇

python中定义函数使用关键字  def

函数返回值可以为多个,当返回值为多个时,其实返回的是一个tuple

def fn(*args): print args

如果想让一个函数能接受任意个参数,我们就可以定义一个可变参数,可变参数的名字前面有个 号,我们可以传入0个、1个或多个参数给可变参数。

可变参数也不是很神秘,Python解释器会把传入的一组参数组装成一个tuple传递给可变参数,因此,在函数内部,直接把变量 args 看成一个 tuple 就好了

--迭代

迭代操作就是对于一个集合,无论该集合是有序还是无序,我们用 for 循环总是可以依次取出集合的每一个元素。

注意: 集合是指包含一组元素的数据结构,我们已经介绍的包括: 1. 有序集合:list,tuple,str和unicode; 2. 无序集合:set 3. 无序集合并且具有 key-value 对:dict

L = ['Adam', 'Lisa', 'Bart', 'Paul']for index, name in enumerate(L):

--列表生成公式

[x * x for x in range(1, 11)] ==> [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

列表生成式的 for 循环后面还可以加上 if 判断。例如:

[x * x for x in range(1, 11) if x % 2 == 0] ==> [4, 16, 36, 64, 100]

--占位符

tds = ['<tr><td>%s</td><td>%s</td></tr>' % (name, score) for name, score in d.iteritems()] print '<table>' print '<tr><th>Name</th><th>Score</th><tr>' print '\n'.join(tds) print '</table>' 字符串后面的 % 指将(name,score)替换到前面zid

参考资料 :http://www.imooc.com/code/3539

转载请注明原文地址: https://www.6miu.com/read-96755.html

最新回复(0)