了解 一下Python中的基本语法,发现挺不适应的,例如变量经常想去指定类型或者if加个括号之类的。这是在MOOC中学习到的知识中一点简单的笔记。

Python的变量和数据类型:

  1、Python这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如C/C++是静态语言,所以Python的变量是不用声明的,可以直接把任意类型赋予变量,总共有整数、浮点数、字符串、布尔值这四种数据类型。其中字符串的表示可以用'xxx'或者"xxx"即''或者""括起来的文本。 int x = 100(C/C++)。而 x = 100(Python)。

   2、C/C++中的逻辑运算符,在Python中用简单易懂的英文来表示。例如 a || b(C/C++), a or b(Python)。

   3、关于print语句:在Python2中,使用的是print x这种语法,在Python3中,使用的是print(x)这种语法。

   4、关于注释:Python的注释以 # 开头,后面的文字直到行尾都算注释。譬如:# 相当于//。也可以使用"""和"""实现/*和*/的成块注释。

   5、如果要表示中文,显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。类似的,日文和韩文等其他语言也有这个问题。为了统一所有文字的编码,Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。Unicode通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为0就可以。因为Python的诞生比Unicode标准发布的时间还要早,所以最早的Python只支持ASCII编码,普通的字符串'ABC'在Python内部都是ASCII编码的。Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示。可以在第一行添加注释:# -*- coding: utf-8 -*-   目的是告诉Python解释器,用UTF-8编码读取源代码。

 # -*- coding: utf-8 -*-

 x = 100
L = [100, 50, 1, 3, 391, 43]
for i in L:
print i, i + 1, "num" """
转为中文
100 101 num
50 51 num
1 2 num
3 4 num
391 392 num
43 44 num
"""

Python的条件判断和循环

 # -*- coding: utf-8 -*-

 L = [100, 50, 1, 3, 391, 43]
for i in L: #用i来遍历L
if i < 50:
print "0 - 49"
elif i < 100: #else if
print "50 - 99"
else:
print "100 - INF" """
100 - INF
50 - 99
0 - 49
0 - 49
100 - INF
0 - 49
Python中有很严格的缩进标准,用缩进来表示一个块
要注意条件和循环后面有一个冒号
"""

Python的方法:list(列表)、turple(元组)、set(集合)、dict(字典)

1、list是一种有序的集合,可以随时添加和删除其中的元素。list是数学意义上的有序集合,也就是说,list中的元素是按照顺序排列的。直接用 [ ] 把list的所有元素都括起来,就是一个list对象。通常,会把list赋值给一个变量,这样,就可以通过变量来引用list:

 L = [100, 50, 1, 'acm', False, True]
print L # :[100, 50, 1, 'acm', False, True]

由于Python是动态语言,所以list中包含的元素并不要求都必须是同一种数据类型,完全可以在list中包含各种数据。

 # -*- coding: utf-8 -*-
#访问,插入,删除操作
L = [95.5,85,59]
print L[0]
print L[1]
print L[2]
print L[-1]
print L[-2]
print L[-3]
# 按索引访问元素,可以倒序访问
"""
95.5
85
59
59
85
95.5
""" L = ['Adam', 'Lisa', 'Bart']
L.append('shadow') #实现把新的元素添加到list的尾部
L.insert(2, 'Paul') #实现把新的元素'Paul'插入到索引2 (从0开始计算索引)
print L
"""
['Adam', 'Lisa', 'Paul', 'Bart', 'shadow']
""" L.pop()
L.pop(0)
#实现删除操作,默认删除尾部元素,或者删除指定的索引
print L
"""
['Lisa', 'Paul', 'Bart']
"""

2、tuple是另一种有序的列表,中文翻译为“ 元组 ”。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。创建tuple和创建list唯一不同之处是用( )替代了[ ]。tuple没有 append()方法,也没有insert()和pop()方法。

 # -*- coding: utf-8 -*-
t = ('a', 'b', ['A', 'B'])
L = t[2]
L[0] = 'C'
L[1] = 'D'
print t """
一种"修改"
表面上看,tuple的元素确实变了,但其实变的不是 tuple 的元素,而是list的元素。
tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!
如果把list改成tuple('A', 'B'),就不可变了
"""

3、把名字称为key,对应的成绩称为value,dict就是通过 key 来查找 value。花括号 {} 表示这是一个dict,然后按照 key: value, 写出来即可。最后一个 key: value 的逗号可以省略。在我看来有点像map吧。

dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。而list的查找速度随着元素增加而逐渐下降。不过dict的查找速度快不是没有代价的,dict的缺点是占用内存大,还会浪费很多内容,list正好相反,占用内存小,但是查找速度慢。由于dict是按 key 查找,所以,在一个dict中,key不能重复。dict的第二个特点就是存储的key-value序对是没有顺序的!打印的顺序不一定是我们创建时的顺序,而且,不同的机器打印的顺序都可能不同,这说明dict内部是无序的,不能用dict存储有序的集合。dict的第三个特点是作为 key 的元素必须不可变,Python的基本类型如字符串、整数、浮点数都是不可变的,都可以作为 key。但是list是可变的,就不能作为 key。

 # -*- coding: utf-8 -*-

 d = {
'Adam': 95,
'Lisa': 85,
'Bart': 59
}
for key in d:
print key,':', d[key]
"""
遍历
Lisa : 85
Adam : 95
Bart : 59
""" d = {
95: 'Adam',
85: 'Lisa',
59: 'Bart'
}
d[72]='Paul'
print d
"""
添加
{72: 'Paul', 59: 'Bart', 85: 'Lisa', 95: 'Adam'} 注意是无序的
"""

4、dict的作用是建立一组 key 和一组 value 的映射关系,dict的key是不能重复的。有的时候,我们只想要 dict 的 key,不关心 key 对应的 value,目的就是保证这个集合的元素不会重复,这时,set就派上用场了。set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。

 # -*- coding: utf-8 -*-
s = set(['adam', 'bart'])
print 'adam' in s
print 'bart' in s
print 'shadow' in s
"""
True
True
False
可以询问该元素是否在s中
""" s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])
for x in s:
print x[0], ':', x[1]
"""
Lisa : 85
Adam : 95
Bart : 59
遍历s中的元素
""" s = set(['Adam', 'Lisa', 'Paul'])
L = ['Adam', 'Lisa', 'Bart', 'Paul']
for i in L:
if i in s: s.remove(i)
else: s.add(i)
print s
"""
set(['Bart'])
删除L中在s中出现过的元素
添加L中在s中未出现过的元素
"""

Python入门学习笔记的更多相关文章

  1. Python入门学习笔记4:他人的博客及他人的学习思路

    看其他人的学习笔记,可以保证自己不走弯路.并且一举两得,即学知识又学方法! 廖雪峰:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958 ...

  2. python入门学习笔记(三)

    10.函数 求绝对值的函数 abs(x) 也可以在交互式命令行通过 help(abs) 查看abs函数的帮助信息.调用 abs 函数:>>> abs(100)100>>& ...

  3. Python入门 学习笔记 (二)

      今天学习了一些简单的语法规则,话不多说,开始了:      二.数据类型                常用数据类型中的整形和浮点型就不多说了.                1.字符串     ...

  4. python入门 -- 学习笔记1

    学习资料:笨方法学Python 准备: 安装环境----请自行网络搜索(Windows安装很简单,和其他安装程序一样) 找一个自己习惯的编辑器(比如:sublime text 3) 创建一个专门的目录 ...

  5. Python入门 学习笔记 (一)

    原文地址:http://www.cnblogs.com/lujianwenance/p/5939786.html 说到学习一门语言第一步就是先选定使用的工具(环境).因为本人是个小白,所以征求了一下同 ...

  6. python入门学习笔记(二)

    6.6替换元素 7.tuple类型 7.1创建tuple 7.2创建单元素tuple    7.3"可变"的tuple 8.条件判断和循环 8.1,if语句   8.2,if... ...

  7. python入门学习笔记(一)

    写在开头:         A:python的交互式环境                                                                         ...

  8. python入门 -- 学习笔记4

    习题38:列表的操作 当你看到像 mystuff.append('hello') 这样的代码时,你事实上已经在 Python 内部激发了一个连锁反应.以下是它的工作原理: 1. Python 看到你用 ...

  9. python入门 -- 学习笔记3

    习题21:函数可以返回东西 过程解析: 1.定义函数:如def add(形参)函数 2.调用函数: add(实参)    别忘记加() 3.在函数调用的时候将实参的值传给形参,代入到函数中进行计算,r ...

随机推荐

  1. 解决:warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;找到 MSIL .netmodule 或使用 /GL 编译的模块;正在。。;LINK : warning LNK4075: 忽略“/INCREMENTAL”(由于“/LTCG”规范)

    参考资料: http://blog.csdn.net/laogaoav/article/details/8544880 http://stackoverflow.com/questions/18612 ...

  2. 关键字 self

    self 总是指向调用方法的对象. self总是代表当前类的对象.当它出现在某个方法体中时,它所代表的对象是不确定的,但它的类型是确定的,它所代表的是当前类的实例对象: 当这个方法被调用时,它所代表的 ...

  3. HTML语言的一些元素(五)

    一.table表格语法与结构 <table> <tr> <td> </td> <td> </td> <td> < ...

  4. Codeforce Round #217 Div2

    e,妈蛋,第二题被hack了 没理解清题意,- -居然也把pretest过了,- -# A: 呵呵! B:包含任意一个子集的输出NO!,其他输出YES! C:贪心额,类似上次的Topcoder的500 ...

  5. 二分多重匹配(HDU5093)

    Battle ships Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Tot ...

  6. ACM-ICPC竞赛模板

    为了方便打印,不再将代码放到代码编辑器里,祝你好运. ACM-ICPC竞赛模板(1) 1. 几何 4 1.1 注意 4 1.2 几何公式 4 1.3 多边形 6 1.4 多边形切割 9 1.5 浮点函 ...

  7. [原创]java WEB学习笔记76:Hibernate学习之路---Hibernate介绍,hibernate 环境的搭建

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  8. JS不兼容减号,css属性转驼峰写法

    <script> function changeFormat(str) { return str.replace(/-(\w)/g, function(k, r) { return r.t ...

  9. HDU 3688 Searchlights(并查集)

    Problem Description There is a piece of grids land of size n×m. Chandler and his team take responsib ...

  10. JAVA实现File类中的遍历操作并输出内容

    package shb.java.testIo; import java.io.BufferedReader; import java.io.BufferedWriter; import java.i ...