Python3.7官方向导翻译之python基础

之前装了一个python2,所以jupyter notebook的内核也是python2,后来我想用python3了,那么如何增加jupyter notebook内核呢?
在命令行环境下输入pip3 install ipykernel,然后输入python -m ipykernel install --user即可

Pyhon字符串

'spam eggs' # single quotes
'spam eggs'
'doesn\'t' #使用 \' 来表示单引号
'doesn"t'
"doesn't"# 或者在双引号中使用单引号
"doesn't"

如果你不想用字符被反斜杠解释为特殊字符,你可以使用原始字符串(raw strings)。原始字符串的格式为在第一个引号前加r

print("C:\some \name")
C:\some 
ame
print(r"c:\some\name") #这种方式在输入目录的时候经常被使用
c:\some\name

字符串文字可以跨越多行。 一种方法是使用三引号:“”“…”“”或”’…”’。 行尾自动包含在字符串中,但可以通过在行尾添加\来防止这种情况。 以下示例:

print("""\
Usage: thingy [OPTIONS]
       -h                 Display this usage message
       -H hostname        Hostname to connect to
""")
Usage: thingy [OPTIONS]
       -h                 Display this usage message
       -H hostname        Hostname to connect to

字符串可以使用+操作符相连,使用*操作符重复

3 * 'un' + 'ium'
'unununium'

2个或更多的相邻的字符串文本(用引号括起来)可以自动连接,当你想打断长的字符串时非常有用

text = ('Put several strings within parentheses'
       ' to have them joined together.')
text
'Put several strings within parentheses to have them joined together.'

但是这种方式只适合文本字符串相连,不包含变量或者表达式

prefix = 'py'
prefix 'thon' #报错,不能连接
  File "<ipython-input-18-e7a1e4c34ef9>", line 2
    prefix 'thon' #报错,不能连接
                ^
SyntaxError: invalid syntax
('un' * 3 ) 'ium' #报错,不能连接
  File "<ipython-input-19-96e49113ce1a>", line 1
    ('un' * 3 ) 'ium' #报错,不能连接
                    ^
SyntaxError: invalid syntax

如果你想将变量或表达式与文本相连,可以使用+操作符

prefix = 'py'
prefix + 'thon'
'python'

字符串可以被索引(下标),第一个字符的索引为0.没有单独的字符类型; 一个字符只是一个大小为1的字符串

word = 'Python'
print(word[0],word[5])
P n

索引也可以是负数,从右边开始,但是负数索引是从-1开始的,0和-0是一个意思

word[-1]
'n'
word[-6]
'P'

除了索引,还支持切片,索引可以让你获得一个字符,切片可以得到子字符串

word[0:2]
'Py'

索引中,它是一种左闭右开区间,也就是说包括开始但不包括结束。这样就可以确保s[:i] + s[i:]恒等与s

word[:2] + word[2:]
'Python'

切片索引具有有用的默认值; 省略的(omit)第一个索引默认为零,省略的第二个索引默认为正在切片的字符串的大小。

word[:2]
'Py'
word[4:]
'on'

对于非负索引,如果两者都在边界内,切片长度是索引的差.

len(word[1:3])
2

索引太大会引起一个错误,但是超范围的切片索引有一个优雅的处理方式

word[4:42]
'on'
word[42:]
''

Python字符串不能改变 - 它们是不可变的(immutable)。 因此,分配给字符串中的索引位置会导致错误:

word[0] = 'J'
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-40-91a956888ca7> in <module>()
----> 1 word[0] = 'J'


TypeError: 'str' object does not support item assignment

内建函数会返回字符串长度

len(word)
6

Lists

Python知道许多复合数据类型(compound data type),用于将其他值组合在一起。 最通用的是该列表,其可以写成方括号之间的逗号分隔值(项目)列表。 列表可能包含不同类型的项目,但通常这些项目都具有相同的类型。

squares = [1, 4, 9, 16, 25]
squares
[1, 4, 9, 16, 25]

和字符串一样,列表也可以索引和切片

print(squares[0])
print(squares[-1])
print(squares[-3:])
1
25
[9, 16, 25]

所有切片操作都会返回一个包含所请求元素的新列表。 这意味着下面的切片将返回列表的新(浅 shallow)副本:

squares[:]
[1, 4, 9, 16, 25]

列表也支持连接(concatenation)

squares + [36, 49, 64, 81, 100]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

和字符串不可变(immutable)不一样,列表是可变的(muttable)类型

squares[1] = 5
squares
[1, 5, 9, 16, 25]

你也可以通过append()函数在列表后面添加新内容

squares.append(22)
squares.append(7 ** 3)
squares
[1, 5, 9, 16, 25, 22, 343]

对切片的分配也是可能的,这甚至可以改变列表的大小或完全清除它

letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
#replace some values
letters[2:5] = ['C', 'D', 'E']
print(letters)
letters[2:5] = []
print(letters)
letters[:] = []
print(letters)
['a', 'b', 'C', 'D', 'E', 'f', 'g']
['a', 'b', 'f', 'g']
[]

内建函数len()也适用于列表

letters = ['a', 'b', 'c', 'd']
len(letters)
4

可以嵌套(nest)列表(创建包含其他列表的列表),例如:

x = [squares, letters]
x
[[1, 5, 9, 16, 25, 22, 343], ['a', 'b', 'c', 'd']]
x[0]
[1, 5, 9, 16, 25, 22, 343]
x[0][1]
5

编程第一步

# Fibonacci series:
# the sum of two elements defines the next
a, b = 0, 1
while b < 10:
    print(b)
    a, b = b, a+b
1
1
2
3
5
8
  1. 第一行包含一个多重赋值:变量a和b同时得到新值0和1.在最后一行,再次使用它,表明在任何赋值之前右侧的表达式都被首先评估
  2. 只要条件(此处:b <10)保持为真,while循环就会执行。 在Python中,与C中一样,任何非零整数值都是true; 零是错误的。 条件也可以是字符串或列表值,实际上是任何序列; 任何长度不为零的东西都是真的,空序列是假的。 本例中使用的测试是一个简单的比较。 标准比较运算符的写法与C中相同:<(小于),>(大于),==(等于),<=(小于或等于),> =(大于或等于) 和!=(不等于)。
  3. 循环的主体是缩进:缩进是Python对语句进行分组的方式。 在交互式提示中,您必须为每个缩进行输入一个或多个空格。 在实践中,您将使用文本编辑器为Python准备更复杂的输入; 所有正派的文本编辑器都有自动缩进功能。 当交互式输入复合语句时,必须在后面跟一个空行来表示完成(因为解析器无法猜测何时输入了最后一行)。 请注意,基本块内的每行必须缩进相同的数量。
  4. print()函数写入它给出的参数的值。 它不同于编写你想写的表达式(就像我们在前面的计算器例子中所做的那样),它处理多重参数,浮点数和字符串的方式不同。 字符串打印时没有引号,并且在项目之间插入空格,所以可以很好地格式化事物,如下所示:
i = 256 * 256
print('The value of i is', i)
The value of i is 65536

可以使用关键字参数end来避免输出后的换行符,或者使用不同的字符串结束输出:

a, b = 0, 1
while b < 1000:
    print(b, end = ',')
    a, b = b, a+b
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,

猜你喜欢

转载自blog.csdn.net/u010132497/article/details/80658865