初始Python

这个是零基础开始学Python笔记


视频+书籍:

imooc廖雪峰老师的视频 初始Python + Python进阶
书籍- Python核心编程

一、Python变量和数据类型

1.Python中数据类型

1.1整数
  • 在Python程序中,整数的表示方法和数学上的写法一模一样,例如:1,100,-8080。
  • 计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等等。
1.2浮点数
  • 浮点数也就是小数,对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x10^9就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。
1.3字符串
  • 字符串是以''或""括起来的任意文本,比如'abc',"xyz"等等。请注意,''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符。
  • 举个例子:
1.4布尔值
  • 逻辑值,一个布尔值只有True、False两种值,布尔值可以用and、or和not运算。
1.5空值
  • 空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

2.print+定义字符串

1.需要理解的' '和" ""

#注意使用print命令
#Enter a code
print 45678+0x12fd2 
print '45678+0x12fd'
print 'Learn Python in imooc'
print 100 < 99
print 0xff == 255
  • 输出结果如下
123456
45678+0x12fd #对比两者的不同
Learn Python in imooc
False
True
  • ' '和" ""的相互套用
"I'm OK"
'Learn "Python" in imooc'
  • 如果字符串既包含'又包含"怎么办?这个时候,就需要对字符串的某些特殊字符进行“转义”,Python字符串用\进行转义。要表示字符串 Bob said "I'm OK".
'Bob said \"I\'m OK\".' 
  • 常用转义符
\n 表示换行
\t 表示一个制表符
\\ 表示 \ 字符本身
  • 逗号, 的意义
>>> print '100 + 200 =', 100 + 200
100 + 200 = 300     #运行结果

3.Python中raw字符串与多行字符串

  • r'...'表示法不能表示多行字符串,也不能表示包含'和 "的字符串
'''Line 1
Line 2
Line 3'''
# 上下两者完全一样
'Line 1\nLine 2\nLine 3'
  • 作业训练
# 注意查看前后变化,以及包含'和 "的字符串
# 请把下面的字符串用r'''...'''的形式改写,并用print打印出来:
'\"To be, or not to be\": that is the question.\nWhether it\'s nobler in the mind to suffer.'

print r'''"To be, or not to be": that is the question.
Whether it's nobler in the mind to suffer.'''

4 .Python中整数和浮点数

  • 和数学运算不同的地方是,Python的整数运算结果仍然是整数,浮点数运算结果仍然是浮点数:
1 + 2    # ==> 整数 3
1.0 + 2.0    # ==> 浮点数 3.0

# 试着比较一下三者不同
11 / 4    # ==> 2
11 % 4    # ==> 3 ,求余
11.0 / 4    # ==> 2.75 ,与11 / 4 比较

5.Python中布尔类型

  • 在Python中,布尔类型还可以与其他数据类型做 and、or和not运算,请看下面的代码:
a = True
print a and 'a=T' or 'a=F'
# 计算结果不是布尔类型,而是字符串 'a=T',这是为什么呢?
  • 因为Python把0、空字符串''和None看成 False,其他数值和非空字符串都看成 True.
  • 解释一下代码
a = 'python'
print 'hello,', a or 'world'
b = ''
print 'hello,', b or 'world'
# 通过 or 运算,可以把空字符串“变成”默认字符串,而非空字符串保持不变。

二、List和Tuple类型

List

1.Python创建list+索引
  • 由于Python是动态语言,所以list中包含的元素并不要求都必须是同一种数据类型,我们完全可以在list中包含各种数据:
>>> L = ['Michael', 100, True] #那些需要加上单引号
# 一个元素也没有的list,就是空list:
>>> empty_list = []
  • 由于list是一个有序集合,通过索引来获取list中的指定元素,需要特别注意的是,索引从 0 开始,也就是说,第一个元素的索引是0,第二个元素的索引是1,以此类推。
>>> L = ['Adam', 'Lisa', 'Bart']
>>> print L[0]
Adam
# Python之倒序访问list
>>> print L[-1]
Bart

2.Python从list删除元素
  • pop()方法总是删掉list的最后一个元素,并且它还返回这个元素,那么原来的List就会发生相应。
L = ['Adam', 'Lisa', 'Paul', 'Bart']
#Paul的索引是2,Bart的索引是3,如果我们要把Paul和Bart都删掉,请解#释下面的代码为什么不能正确运行:
L.pop(2)
L.pop(3)
#怎样调整代码可以把Paul和Bart都正确删除掉?
L.pop(2)
L.pop(2)
3.替换元素
  • 直接用索引进行赋值
L[-1] = 'Paul'

Tuple

1.Tuple与List
  • tuple是另一种有序的列表,中文翻译为“ 元组 ”。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。
>>> t = ('Adam', 'Lisa', 'Bart')
  • 创建tuple和创建list唯一不同之处是用( )替代了[ ]
  • 获取 tuple 元素的方式和 list 是一模一样的,我们可以正常使用 t[0],t[-1]等索引方式访问元素,但是不能赋值成别的元素。
2.创建单元素tuple
>>> t = (1)
>>> print t
1
# 比较两者不同
>>> t = (1,)
>>> print t
(1,)
  • 因为()既可以表示tuple,又可以作为括号表示运算时的优先级,结果 (1) 被Python解释器计算出结果 1,导致我们得到的不是tuple,而是整数 1。
  • 正是因为用()定义单元素的tuple有歧义,所以 Python 规定,单元素 tuple 要多加一个逗号“,”
  • Python在打印单元素tuple时,也自动添加了一个“,”,为了更明确地告诉你这是一个tuple。
3.Python之“可变”的tuple
>>> t = ('a', 'b', ['A', 'B'])
# List=['A', 'B']是可变的
>>> L = t[2]
>>> L[0] = 'X'
>>> L[1] = 'Y'
>>> print t
('a', 'b', ['X', 'Y'])

三、条件判断和循环

1.Python之if语句
>>> age = 20
>>> if age >= 18:   # if 语句后接表达式,然后用:表示代码块开始
...     print 'your age is', age     #4个空格,不要使用Tab,
...     print 'adult'
...                 #退出缩进需要多敲一行回车
your age is 20
adult
  • if + else
if age >= 18:
    print 'adult'
else:
    print 'teenager'
  • Python之 if-elif-else
  • 这一系列条件判断会从上到下依次判断,如果某个判断为 True,执行完对应的代码块,后面的条件判断就直接忽略,不再执行了。
if age >= 18:
    print 'adult'
elif age >= 6:
    print 'teenager'
elif age >= 3:
    print 'kid'
else:
    print 'baby'
# 比较两者的不同
# 那个代码存在错误
age = 8
if age >= 6:
    print 'teenager'
elif age >= 18:
    print 'adult'
else:
    print 'kid'

2. for循环+ while循环
  • for循环
L = [75, 92, 59, 68]
sum = 0.0
for socre in L:
    sum=sum+socre
print sum / 4
  • while循环
# 这个是正确的
sum = 0
x = 1
while x<100:
    sum=sum+x
    x=x+2
print sum
# 这个是错误的,想想为什么
sum = 0
x = 1
while x<100:
    x=x+2
    sum=sum+x
print sum
  • Python之 break退出循环
sum = 0
x = 1
while x<100:
    sum=sum+x
    x=x+2
print sum
# 上面代码可以使用break实现:
sum = 0
x = 1
while True:
    sum = sum + x
    x = x + 2
    if x > 100:
        break
print sum
  • Python之 continue继续循环
  • 对已有的计算 0 - 100 的while循环进行改造,通过增加 continue 语句,使得只计算奇数的和:
sum = 0
x = 0
while True:
    x = x + 1
    if x > 100:
        break    #注意上下缩减关系
    if x % 2 == 0:    # if条件句后面一定要有冒号:
        continue
    sum = sum + x
print sum
  • Python之 多重循环
  • 在循环内部,还可以嵌套循环:
for x in ['A', 'B', 'C']:
    for y in ['1', '2', '3']:
        print x + y
# x 每循环一次,y 就会循环 3 次,这样,我们可以打印出一个全排列

四、Python之Dict+Set类型

Dict
  • 什么是dict
d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}
#由于dict也是集合,len() 函数可以计算任意集合的大小:
>>> len(d)
3
  • 访问dict
>>> print d['Adam']
95
# 一是先判断一下 key 是否存在,用 in 操作符:
if 'Paul' in d:
    print d['Paul']
# 二是使用dict本身提供的一个 get 方法,在Key不存在的时候,返回None:
>>> print d.get('Bart')
59
>>> print d.get('Paul')
None
  • dict的特点
  • 打印的顺序不一定是我们创建时的顺序,而且,不同的机器打印的顺序都可能不同,这说明dict内部是无序的,不能用dict存储有序的集合。
  • 更新dict
d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}
>>> d['Paul'] = 72
>>> print d
{'Lisa': 85, 'Paul': 72, 'Adam': 95, 'Bart': 59}

2.set

  • Python中什么是set
  • set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。
# 创建 set 的方式是调用 set() 并传入一个 list,list的元素将作为set的元素
>>> s = set(['A', 'B', 'C', 'C'])
>>> print s
set(['A', 'C', 'B'])
>>> len(s)
3
#因为set不能包含重复的元素,所以...
  • 访问set
>>> s = set(['Adam', 'Lisa', 'Bart', 'Paul'])
>>> 'Bart' in s    #区别大小写
True

# 可以用 if 语句判断,
weekdays = set(['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN'])
x = '???' # 用户输入的字符串
if x in weekdays:
    print 'input ok'
else:
    print 'input error'
  • 遍历set
  • 由于 set 也是一个集合,所以,遍历 set 和遍历 list 类似,都可以通过 for 循环实现。
s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])
s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])
for x in s:
    print x[0] + ':', x[1]    #如何理解+
  • 更新set
  • 添加元素时,用set的add()方法,如果添加的元素已经存在于set中,add()不会报错,但是不会加进去了.
  • 删除set中的元素时,用set的remove()方法,如果删除的元素不存在set中,remove()会报错.
s = set(['Adam', 'Lisa', 'Paul'])
L = ['Adam', 'Lisa', 'Bart', 'Paul']
for name in L:
    if name in s:
        s.remove(name)
    else:
        s.add(name)
print s
>>>set(['Bart'])

五、函数

  • 编写函数
  • 在Python中,定义一个函数要使用 def 语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用 return 语句返回。
def square_of_sum(L):
    sum=0
    for x in L:
        sum=sum + x * x
    return sum
print square_of_sum([1, 2, 3, 4, 5])
  • Python之定义默认参数
  • 由于函数的参数按从左到右的顺序匹配,所以默认参数只能定义在必需参数的后面:
#请定义一个 greet() 函数,它包含一个默认参数,如果没有传入,打印 'Hello, world.',如果传入,打印 'Hello, xxx.'
def greet(name='world'):    #name是必需参数,'world'为默认参数
    print 'Hello, ' + name + '.'
greet()
greet('Bart')
  • Python之定义可变参数
  • 可变参数的名字前面有个 * 号,我们可以传入0个、1个或多个参数给可变参数:
def average(*args):
    sum = 0.0    #想想sum = 0会是怎么样?
    if len(args)==0:
        return sum
    for i in args:
        sum=sum + i
    return sum/len(args)
print average()
print average(1, 2)
print average(1, 2, 2, 3, 4)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容

  • 最近在慕课网学习廖雪峰老师的Python进阶课程,做笔记总结一下重点。 基本变量及其类型 变量 在Python中,...
    victorsungo阅读 1,656评论 0 5
  • 一、简介 Python 是世界上十大流行的编程语言之一。 创始人:龟叔 Guido van Rossum 荷兰人 ...
    Esther的异想空间阅读 554评论 0 50
  • Python (1)数据类型和变量 (2)字符串和编码 (3)使用List和tuple (4)条件判断 (5)循环...
    遥遥的远方阅读 164评论 0 0
  • 标签: Python 数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值...
    表表哥阅读 290评论 0 0
  • python开发环境配置 关于版本: 2.X和3.X的区别还是挺大的,但是最后肯定新版本会取代旧版本,所以我还是安...
    朔野阅读 369评论 0 0