廖雪峰课程笔记-2:Python基础

617 阅读5分钟

Python基础

开启/关闭Python交互模式

开启:在命令行模式下敲命令python

退出:在Python交互模式下输入exit()并回车,就退出了Python交互模式,并回到命令行模式

Python语法细则

  • 注释 以#开头的语句是注释
  • 没有{} 其他每一行都是一个语句,当语句以冒号:结尾时,缩进的语句视为代码块。
  • 缩进 Python中的缩进十分重要。
  • 大小写敏感

输入输出

输出

简单输出

如果要让Python打印出指定的文字,可以用print()函数,然后把希望打印的文字用单引号或者双引号括起来,==但不能混用单引号和双引号==。

print('hello, world')

不加单引号则看作是计算,如:

>>> print('100 + 200 =', 100 + 200)
100 + 200 = 300

输出变量

除了直接写name然后按回车外,还可以用print()函数

>>> name
'Michael'

>>> print(name)
Michael

多个字符串组合输出

⭐️用逗号**,**隔开,就可以连成一串输出:

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

print('hello,', name)
hello, Michael

输入

控制台输入

Python提供了一个input(),可以让用户输入字符串,并存放到一个变量里。

>>> name = input()
Michael

如果在其中加入字符串可以作为输入的提示:

x=input("请输入x=")# x为字符串

⚠️input()返回值永远是字符串,如果想要转为其他类型,要嵌套一个数据类型来强制转换:

x=int(input("请输入x=")) # x为int型

文件IO

参见这里

数据类型

整数

  • Python可以处理任意大小的整数
  • 十六进制 十六进制用0x前缀和0-9,a-f表示,例如:0xff000xa5b4c3d2
  • ⭐️用__分割 对于很大的数,例如10000000000,很难数清楚0的个数。Python允许在数字中间以_分隔,因此,写成10_000_000_00010000000000是完全一样的*。
  • Python的整数没有大小限制

浮点数

用科学计数法表示,把10用e替代,1.23×1091.23 \times 10^9就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5

Python的浮点数也没有大小限制,但是超出一定范围就直接表示为inf(无限大)。

字符串

字符串是以单引号*'*或双引号*"*括起来的任意文本单引号和双引号均可以代表字符串,不过一般写成单引号用的多一点。

换行符

如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容

>>> print('''line1
... line2
... line3''')
line1
line2
line3

⭐️布尔值

布尔值只有TrueFalse两种值(请注意大小写)。

布尔值可以用andornot运算。

⭐️空值

空值是Python里一个特殊的值,用None表示。

⭐️变量

  • 变量名必须是大小写英文、数字和_的组合,且不能用数字开头。

  • 变量赋值不需要表注数据类型,Python自动匹配数据类型,非常简便。这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言

    a = 123 # a是整数a = '123' # a变为字符串
    

常量

在Python中,通常用全部大写的变量名表示常量,但事实上PI仍然是一个变量,Python根本没有任何机制保证PI不会被改变,所以,用全部大写的变量名表示常量只是一个习惯上的用法。

PI = 3.14159265359

⭐️格式化

格式化要解决如何输出格式化的字符串,例如输出'亲爱的xxx你好!你xx月的话费是xx,余额是xx',而xxx的内容都是根据变量变化的。

⭐️方法一:占位符格式化(最常用)

和C语言基本上保持一致。

占位符替换内容
%d整数
%f浮点数
%s字符串
%x十六进制整数

注意字符串与变量之间通过 % 间隔

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

还可以指定是否补0和整数与小数的位数,与C语言一致:

>>> print('%2d-%02d' % (3, 1))3-01>>> print('%.2f' % 3.1415926)3.14

方法二:format()(不常用)

另一种格式化字符串的方法是使用字符串的format()方法,它会用传入的参数依次替换字符串内的占位符{0}{1}……,不过这种方式写起来比%要麻烦得多:

>>> 'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125)'Hello, 小明, 成绩提升了 17.1%'

方法三:f-string

最后一种格式化字符串的方法是使用以f开头的字符串,称之为f-string,它和普通字符串不同之处在于,字符串如果包含{xxx},就会以对应的变量替换:

>>> r = 2.5>>> s = 3.14 * r ** 2>>> print(f'The area of a circle with radius {r} is {s:.2f}')The area of a circle with radius 2.5 is 19.62

上述代码中,{r}被变量r的值替换,{s:.2f}被变量s的值替换,并且:后面的.2f指定了格式化参数(即保留两位小数),因此,{s:.2f}的替换结果是19.62

运算

除法与地板除

/除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数:

>>> 9 / 33.0

还有一种除法是//,称为地板除,两个整数的除法仍然是整数:

>>> 10 // 33

要求精确的除法用/

编码问题

详情参见

当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行

#!/usr/bin/env python3# -*- coding: utf-8 -*-

第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;

第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。