python语言笔记

Python 基础

Python 的语法比较简单,采用缩进方式,写出来的代码就像下面的样子:

 

# print absolute value of an integer:

a = 100

if a >= 0:    

    print(a)

else:   

    print(-a)

以#开头的语句是注释,注释是给人看的,可以是任意内容,解释器会

忽略掉注释。其他每一行都是一个语句,当语句以冒号:结尾时,缩进

的语句视为代码块。

 

*(tab)4个空格

*Python 程序是大小写敏感的,如果写错了大小写,程序会报错。

 

 数据类型和变量

数据类型

整数
浮点数
字符串

''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有 a,b,c 这 3 个字符。如果'本身也是一个字符,那就可以用""括起来,比如"I'm OK"包含的字符是 I,',m,空格,O,K这 6 个字符。

 如果字符串内部既包含'又包含"可以用转义字符\来标识,比如:

'I\'m \"OK\"!'

表示的字符串内容是:

I'm "OK"!

原理{

>>> print(' \' ')

'

>>> print('\\\n\\')

\

\  }

如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,

Python 还允许用 r' '表示' '内部的字符串默认不转义:

>>> print('\\\t\\')

\       \

>>> print(r'\\\t\\')

\\\t\\

 

如果字符串内部有很多换行,用\n 写在一行里不好阅读,为了简化,

Python 允许用'''...'''的格式表示多行内容:

>>> print('''line1

... line2

... line3''')

line1

line2

line3

>>> exit()

 

上面是在交互式命令行内输入,注意在输入多行内容时,提示符由>>>变为...,提示你可以接着上一行输入。如果写成程序,就是: print('''line1line2 line3''')

C:\Users\Mis YuT>cd desktop

C:\Users\Mis YuT\Desktop>yy.py

line1

line2

line3

 

多行字符串'''...'''还可以在前面加上 r 使用,如下:

          

C:\Users\Mis YuT\Desktop>t.py

\nline1

\n\nline2

line3

 

 

布尔值

一个布尔值只有 True、False 两种值,要么是 True,要么是 False,在Python 中,可以直接用 True、False表示布尔值:

>>> True

True

>>> False

False

>>> 3>2

True

>>> 3>5

False

布尔值可以用 and、or 和 not 运算

1、 and 运算是与运算,只有所有都为 True,and 运算结果才是 True

2、 or 运算是或运算,只要其中有一个为 True,or 运算结果就是 True

3、 not 运算是非运算,它是一个单目运算符,把 True 变成 False,False 变成 True

 

eg:

>>> True or True

True

>>> True or False

True

>>> False or False

False

>>> 5 > 3 or 1 > 3

True

>>> 3 > 5 or 1 > 3

False

>>> True and False

False

>>> not True

False

>>> not 1 > 3

True

 

空值

空值是 Python 里一个特殊的值,用 None 表示。None 不能理解为0,因

为 0 是有意义的,而 None 是一个特殊的空值

 

变量

是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。变量在程序中就是用一个变量名表示了,变量名必须是大小写英文、数字和_的组合,且不能用数字开头

 

当我们写: a = 'ABC' 时,Python解释器干了两件事情:

1. 在内存中创建了一个'ABC'的字符串;

2. 在内存中创建了一个名为 a 的变量,并把它指向'ABC'。

 

*注意:与c语言一样,按照顺序做每一步。

 

 

练习

请打印出以下变量的值:

n = 123

f = 456.789

s1 = 'Hello, world'

s2 = 'Hello, \'Adam\''

s3 = r'Hello,"Bart"'

s4 = r'''Hello, Lisa!'''

 

>>> print('n = 123')

n = 123

>>> print('f = 456.789')

f = 456.789

>>> print('s1 = \'Hello, world\'')

s1 = 'Hello, world'

>>> print('s2=\'Hello,\\\'Adam\\\'')

s2 ='Hello,\'Adam\'

>>> print('r\'Hello,\"Bart\"')

r'Hello, "Bart"

>>>print('r\'\'\'Hello,\nLisa!\'\'\'')

r'''Hello,

Lisa!'''

 

 

字符串和编码

字符编码

Unicode 标准也在不断发展,但最常用的是用两个字节表示一个字符(如

果要用到非常偏僻的字符,就需要 4 个字节)。

Python 的字符串

对于单个字符的编码,Python 提供了 ord()函数获取字符的整数表示,

chr()函数把编码转换为对应的字符:

>>> ord('A')

65

>>> ord('中')

20013

>>> chr(66)

'B'

>>> chr(25991)

'文'

 

如果知道字符的整数编码,还可以用十六进制这么写 str:

>>> '\u4e2d\u6587'

'中文'

两种写法完全等价

 

>>> 'ABC'.encode('ascii')

b'ABC'

>>> '中文'.encode('utf-8')

b'\xe4\xb8\xad\xe6\x96\x87'

>>> '中文'.encode('ascii')

Traceback (most recent call last):

File"<stdin>", line 1, in <module>

UnicodeEncodeError: 'ascii' codec can't encode characters inposition 0-1: ordinal not in range(128)

 

由于 Python 的字符串类型是str,在内存中以 Unicode 表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str 变为以字节为单位的 bytes。

Python 对 bytes 类型的数据用带 b 前缀的单引号或双引号表示:

x = b'ABC'

要注意区分'ABC'和 b'ABC',前者是 str,后者虽然内容显示得和前者一样,但 bytes 的每个字符都只占用一个字节。

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

>>> 'ABC'.encode('ascii')

b'ABC'

>>> '中文'.encode('utf-8')

b'\xe4\xb8\xad\xe6\x96\x87'

>>> '中文'.encode('ascii')

Traceback (most recent call last):

File"<stdin>", line 1, in <module>

UnicodeEncodeError: 'ascii' codec can't encode characters inposition 0-1: ordinal not in range(128)

纯英文的 str 可以用 ASCII 编码为 bytes,内容是一样的,含有中文的 str可以用 UTF-8 编码为 bytes。含有中文的 str 无法用 ASCII 编码,因为中文编码的范围超过了 ASCII 编码的范围,Python 会报错。

 

在 bytes 中,无法显示为ASCII 字符的字节,用\x##显示。

 

反过来,如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把 bytes 变为 str,就需要用decode()方法:

>>> b'ABC'.decode('ascii')

'ABC'

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

'中文'


要计算 str 包含多少个字符,可以用len()函数:

>>> len('ABCD')

4

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值