[Python]第一章 快速上手:基础知识

1.1交互式解释器

>>> print("Hello, world!")
Hello, world!
>>>

1.2算法是什么

计算机编程就是告诉计算机如何做

1.3数和表达式

加减乘除±*/

>>> 53672 + 235253
288925

取整//--------向下(小)圆整

>>> 5.0 // 2.4
2.0

取模(取余)%

>>> 10 % 3
1

乘方(求幂)

>>> (-3) ** 2
9

十六进制、八进制和二进制

>>> 0xAF
175

1.4变量

赋值

>>> x = 3

使用

>>> x * 2
6

Notice:使用Python变量前必须给它赋值,因为Python变量没有默认值。在Python中,名称(标识符)只能由字母、数字和下划线(_)构成,且不能以数字打头。
因此Plan9是合法的变量名,而9Plan不是。

1.5语句

赋值语句
Print语句(调用print函数的语句)
表达式:是一些东西
语句:做一些事情,根本特征是执行修改操作

1.6获取用户输入input()

Input函数

>>> input("The meaning of life: ")
The meaning of life: 42
'42'

输入内容以文本或字符串方式返回

>>> x = input("x: ")
x: 34
>>> y = input("y: ")
y: 42
>>> print(int(x) * int(y))
1428
>>> print(x+y)
3442

If语句

>>> if 1 == 2: print('One equals two')
...
>>> if 1 == 1: 
print('One equals one')
...
One equals one
>>>

NOTICE:相等运算符(==)

1.7函数

调用函数:你向它提供实参,而它返回一个值。
鉴于函数调用返回一个值,因此它们也是表达式
pow()幂函数

>>> 2 ** 3
8
>>> pow(2, 3)
8

pow等标准函数称为内置函数,可结合使用函数调用和运算符来编写更复杂的表达
abs()计算绝对值

>>> abs(-10)
10

Round()将浮点数圆整为与之最接近的整数。

>>> 2 // 3
0
>>> round(2 / 3)
1.0

//整除符号是向下(小)圆整,
round()是向近圆整,有一个floor()可以向下(小)圆整,但不能直接使用,ceil()向上圆整
(也可floor()+1就是向上圆整)

1.8 模块

可将模块视为扩展,通过将其导入可以扩展Python功能
工作原理:我们使用import module导入模块,再以module.function的方式使用模块
中的函数
floor()向下圆整

>>> import math
>>> math.floor(32.9)
32

int()取整(类似的str()、float()实际上是类)

>>> int(32.9) 
32

ceil()向上圆整

>>> math.ceil(32.3)
33

确定不会从不同模块导入多个同名函数,避免每次调用函数时都指定模块名,可以如下
变种from module import function

Sqrt()开平方

>>> from math import *
>>> sqrt(9)
3.0

Notice:如果使用这种命令,其他模块的同名函数则无法被调用。
事实上,可使用变量来引用函数(以及其他大部分Python元素)

>>> import math
>>> foo =math.sqrt
>>> foo(4)
2.0

1.8.1 cmath 和复数

如果有数平方是负数的话,那个数就是虚数。实部和虚部组成的数为复数。
Python标准库提供了一个专门用于处理复数的模块cmath。

>>> import cmath
>>> cmath.sqrt(-1)
1j

1j是个虚数,虚数都以j(或J)结尾。复数算术运算都基于如下定义:-1的平方根为1j

>>> (1 + 3j) * (9 + 4j)
(-3 + 31j)

1.8.2 回到未来

神奇模块__future__

1.9保存并执行程序

1.9.1从命令提示符运行 Python 脚本

Windows系统下:
在这里插入图片描述
前提:
正确配置环境变量
存放hello.py文件的目录也要配置到环境变量,文件内容:print(“Hello, world!”)
不要忘记在文件名前输入“Python”
在这里插入图片描述

同理,改变hello.py内容
在这里插入图片描述
在这里插入图片描述
这里Jack是手动输入的

海归绘图法-比print更有趣的输出

>>> from turtle import *
>>> forward(100)
>>> left(120)
>>> forward(100)
>>> left(120)
>>> forward(100)

在这里插入图片描述
要将铅笔抬起,可使用penup();要将铅笔重新放下,可使用pendown()。

1.9.2 让脚本像普通程序一样

UNIX

#!/usr/bin/env python
$ chmod a+x hello.py
$ hello.py                 (尝试用./hello.py)

Windows
双击.py文件选择打开程序
在这里插入图片描述
修改文件,避免操作完就退出
在这里插入图片描述
在这里插入图片描述
按完Enter键后退出

1.9.3 注释#

>>> #这是注释
... print('hello')
Hello

1.10 字符串

1.10.1 单引号字符串以及对引号转义’’ “” \

单引号和双引号在打印字符串的时候相同

>>> 'hello,world'
'hello,world'
>>> "hello,woeld"
'hello,woeld'

但当打印的字符串中有引用,需要同时用到这两种引号

>>> 'she said:"hello,world"'
'she said:"hello,world"'
>>> "Let's go!"
"Let's go!"

或者用反斜杠\转义

>>> 'Let\'s go!'
"Let's go!"

1.10.2 拼接字符串+

同时一次输入两个字符产,则自动关联

>>> "Let's say:"'"Hello,World"'
'Let\'s say:"Hello,World"'

拼接方法:+

>>> x='Hello,'
>>> y='World!'
>>> x+y
'Hello,World!'

1.10.3 字符串表示 str 和 repr

将值转换成了字符串。print输出比直接输出,消除引号,并可以识别字符串中的 转义符

'Hello,Woeld!'
>>> "Hello,World!"
'Hello,World!'
>>> print("Hello,World!")
Hello,World!
>>> "Hello,\nWorld!"
'Hello,\nWorld!'
>>> print("Hello,\nWorld!")
Hello,
World!

使用str(注意:这是个类)能以合理的方式将值转换为用户能够看懂的字符串。 例如,尽可能将特殊字符编码转换为相应的字符。
使用repr(object)(注意:这是个函数)时,通常会获得值的合法Python表达式 表示。返回一个对象的 string 格式。

>>> s='hello,\nworld'
>>> str(s)
'hello,\nworld'
>>> print(str(s))
hello,
world
>>> repr(s)
"'hello,\\nworld'"
>>> print(repr(s))
'hello,\nworld'
>>>

1.10.4 长字符串、原始字符串和字节

1. 长字符串

要表示很长的字符串(跨越多行的字符串),可使用三引号(而不是普通引号)。

>>> print('''This is a very long string,It continues here.
... and it's not over yet."Hello,World"
... Still here.''')
This is a very long string,It continues here.
and it's not over yet."Hello,World"
Still here.
>>>

常规字符串换行只要在换行出加\

>>> 1+2+\
... 4+5
12
2. 原始字符串

针对反斜杠的转义,可以在\前再增加一个\,对之前的\进行转义,从而打印 出完整的字符串

>>> path='C:\nwhere'
>>> path
'C:\nwhere'
>>> print(path)
C:
where
>>> print('C:\\nwhere')
C:\nwhere

或者在字符串前加r,原始字符串用前缀r表示

>>> print(r'C:\where')
C:\where

原始字符串不能以反斜杠结尾。

>>> print(r'This is illegal\')
  File "<stdin>", line 1
    print(r'This is illegal\')
                             ^
SyntaxError: EOL while scanning string literal

如果非要以\结尾,可以尝试以下方法

>>> print(r'C:\Progrm\foo\bar'+'\\')
C:\Progrm\foo\bar\
>>> print(r'C:\Progrm\foo\bar\\'[:-1])
C:\Progrm\foo\bar\
>>> print('C:\\Progrm\\foo\\bar\\')
C:\Progrm\foo\bar\
3.Unicode、bytes和bytearray

每个Unicode字符都用一个码点(code point)表示,而码点是Unicode标准给每个字符指定的数字。
http://unicode-table.com

>>> '\u00C6'
'Æ'

不可变的bytes,可直接创建bytes对象(而不是字符串)方法是使用前缀b:

>>> b'Hello'
b'Hello'
>>>

只要文件使用的是UTF-8编码,就无需操心编码和解码的问题。但如果原本 正常的文本变成了乱码,就说明文件使用的可能是其他编码。
了bytearray,它是bytes的可变版
要替换其中的字符,必须将其指定为0~255的值。
因此,要插入字符,必须使用ord获取其序数值(ordinal value)

>>> x=bytearray(b'Hello!')
>>> x[1]=ord(b'u')
>>> x
bytearray(b'Hullo!')
>>>

1.11 小结

1.11.1 本章介绍的新函数

abs(number) 返回指定数的绝对值
bytes(string, encoding[, errors]) 对指定的字符串进行编码,并以指定的方式处理错误
cmath.sqrt(number) 返回平方根;可用于负数
float(object) 将字符串或数字转换为浮点数
help([object]) 提供交互式帮助
input(prompt) 以字符串的方式获取用户输入
int(object) 将字符串或数转换为整数
math.ceil(number) 以浮点数的方式返回向上圆整的结果
math.floor(number) 以浮点数的方式返回向下圆整的结果
math.sqrt(number) 返回平方根;不能用于负数
pow(x, y[, z]) 返回x的y次方对z求模的结果
print(object, …) 将提供的实参打印出来,并用空格分隔
repr(object) 返回指定值的字符串表示
round(number[, ndigits]) 四舍五入为指定的精度,正好为5时舍入到偶数
str(object) 将指定的值转换为字符串。用于转换bytes时,可指定编码和错误处理方式

猜你喜欢

转载自blog.csdn.net/weixin_40844116/article/details/83722448