Python学习笔记(一)—— 基础语法

    写在前面:作为一个电子信息专业的大三学生,觉得所学知识甚少,于是决定自学Python。以前都是看别人的博客,第一次用博客写学习笔记,希望能作为一个学习过程的和总结自己学习知识的一个记录,希望能坚持才行呀~

    在决定学习Python的时候,其实考虑了几种自学方法,刚开始是在课程网站上看视频课程,但是觉得这样学习太慢了。在搜索的时候发现了廖雪峰的官方网站,觉得用来自学挺适合的,于是就以它为参考开始学习。昨天看了一个下午看了三章,知识点都很容易,都是基本语法,代码写的多了自然就记得,然而在刚开始学习的时期还是决定写一些简单记录,以便查找与复习。


一、字符串表示

1. 字符串用“”或‘ ’括起来表示。当字符串含‘ 时,用“”括起来。表示“ 时也可以使用转义符\

如:‘I\'m \"OK"!'  输出为 I'm "OK"!

2. 如果很多字符需要转义,可以使用 r ' ' 

如: print(r'\\\t\\') 输出为\\\t\\

3. 字符串很多换行时:可以使用'''     ''' 表示

如:print('''line1(按下回车)line2(按下回车)line3''') 输出为:

line1

line2

line3

二、字符串编码

在最新的Python 3版本中,字符串是以Unicode编码的.

python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符:

>>> ord('A')
65
>>> ord('中')
20013
>>> chr(66)
'B'
>>> chr(25991)
'文'

因为字符串要在网络上传输或者保存到磁盘上需要把str转为以字节为单位的bytes,所以要了解以下函数:

A.    encode()

以Unicode表示的str通过encode()方法可以编码为指定的bytes,例如:

>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'

B.    decode()

当在网络或者磁盘上读取了字节流,就要把bytes型转为str,可以用该函数。如:

>>>b'ABC'.decode('ascii')
'ABC'
>>>b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'

C.     其它相关函数

len()  计算str包含多少个字符或者计算bytes包含多少个字节数,取决于括号内字符串类型。

>>> len(b'ABC')
3
>>> len(b'\xe4\xb8\xad\xe6\x96\x87')
6
>>> len('中文'.encode('utf-8')) #转为bytes
6

注意事项:

 1.  建议使用utf-8对str与bytes进行转换

  2. 当源代码中包含中文的时候,务必指定为utf-8编码。通常在文件开头写上:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;
第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码

同时也要注意文本编辑器也使用utf-8without BOM编码。


三、数据类型

list  列表 类似数组。

可以用索引方式访问元素。最后一个元素索引是len(classments)-1。可用负数索引下标表示最后倒数元素

>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates
['Michael', 'Bob', 'Tracy']
>>> len(classmates)
3
>>> classmates[-1]
'Tracy'

相关函数:xx.append()  添加元素到末尾、 xx.insert() 插入、  xx.pop删除末尾元素,xx.pop(i)删除对应元素

>>> classmates.append('Adam')
>>> classmates
['Michael', 'Bob', 'Tracy', 'Adam']

>> classmates.insert(1, 'Jack')
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']

>>> classmates.pop()
'Adam'
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy']

>>> classmates.pop(1)
'Jack'
>>> classmates
['Michael', 'Bob', 'Tracy']


tuple元组

一经初始化就不能再修改,因为不可变 所以更安全。

但是list可以作为元组元素,使其看起来好像可变

>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])

特性:切片

取一个list或tuple的部分元素可以采用切片操作。与matlab相似,只不过matlab是从1开始,python从0开始。且python不包括最后一个数。且不是括号取,是用 【】

例如: L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']

取前三个可以用 L[0:3] 这相当于 [ L[0],L[1],L[2] ],即索引为0-N-1;当第一个数为0时,可以省略,即L[:3] =  [ L[0],L[1],L[2] ]

由于取倒数第一个元素可以用L[-1],相似的,切片也可以取倒数。如:

L[-2 : -1]取的是倒数第二个,L[ -2 : ]取的是倒数两个。即

>>> L[-2:]
['Bob', 'Jack']
>>> L[-2:-1]
['Bob']

还可以间隔取数,即在后面再补一个数: L[ :10:2 ] 表示为前十个数,每两个取一个。

创建一个列表。

>>> L = list(range(100))
>>> L
[0, 1, 2, 3, ..., 99]
>>> L[:10:2]
[0, 2, 4, 6, 8]
上面为前十个,每两个取一个。 下面为所有数,每五个取一个
>>> L[::5]
[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]
若取全部可以用 L[ : ]
tuple的操作同上,字符串‘xxx’也可以作切片操作,每个元素为一个字符。


dict 字典

在其它语言中称为map,使用键-值方式储存(key-value)。

>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95

把数据放入的方法:

>>> d['Bob'] = 67
>>> d['Bob']
67

判断key在不在字典里

>>> 'Thomas' in d #通过in判断
False

>>> d.get('Thomas') #通过get()判断,不存在返回None
>>> d.get('Thomas', -1)#不存在返回-1.
-1

删除使用  xx.pop(key)


set 与dict类似,但是没有value。且 在set中没有重复的key。

添加元素: xx . add(key)

删除元素: xx . remove(key)

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

四、逻辑

条件判断

python不用大括号区分段或者用end,而是直接用缩进表示。例:

age = 3
if age >= 18:
    print('your age is', age)
    print('adult')
#如果没有缩进,就相当于不在if内了。
elif age>=6:
    print('teenager')
else:
    print('your age is', age)
    print('teenager')
注意不要少些冒号,一般编辑器可以自动补全。

循环

Python的循环有两种,一种是for...in...循环,依次把list或tuple中的每个元素迭代出来。第二种循环是while循环。

names = ['Michael', 'Bob', 'Tracy']
for name in names:
    print(name)

如果要计算1-100的整数之和,Python提供一个range()函数,可以生成一个整数序列,再通过list()函数可以转换为list。比如range(5)生成的序列是从0开始小于5的整数:

>>> list(range(5))
[0, 1, 2, 3, 4]

用while表示循环:

sum = 0
n = 99
while n > 0:
    sum = sum + n
    n = n - 2
print(sum)

循环中的break与continue同c语言。


五、 输入输出

A. 输出

print() 输出,括号内可以是数据也可以是字符串,可以加上逗号输出多个字符串或数据,每个逗号会输出一个空格

>>> print('The quick brown fox', 'jumps over', 'the lazy dog')
The quick brown fox jumps over the lazy dog

B.  输入

input() 可以接收输入,返回值为str类型,且括号内可以输入提示语。

name = input('please enter your name: ')
print('hello,', name)

输出为:

please enter your name: Michael
hello, Michael

注意:

input()返回的数据类型是str,str不能直接和整数比较,如果输入是数据,必须先把str转换成整数。Python提供了int()函数来完成这件事情:

s = input('birth: ')
birth = int(s)
if birth < 2000:
    print('00前')
else:
    print('00后')
C.  格式化。
与c语言相似 只是将,换成%,当变量多于一个时,要加括号。如:

>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'



六、计算

除法: / 表示浮点数除法计算。返回浮点数。如: >>>9/3 输出 3.0

         //也称地板除,返回整数。 10//3 为3.

取余 %


    以上为第一次笔记的简单记录了~还有关于list与tuple的一些高级特性没写进去,下次与函数一起写吧。本学习笔记很多例子引用于廖雪峰的网站

猜你喜欢

转载自blog.csdn.net/qq_36999901/article/details/80212824