Python—>(3)学习笔记

Linux环境下安装与设置

1)部分Linux发行版包含所有的Python包,可以通过apt这样的工具进行安装;
2)Anaconda的安装:安装时需要使用一个文件名类似于Anaconda3-4.1.0-Linux-86_64.sh的文件,在bash命令行输入bash Anaconda3-4.1.0-Linux-86_64.sh,接受许可后选择安装路径;修改.bashrc文件export PATH=/home/user/anaconda/bin:$PATH,将他的/bin目录添加到$PATH变量中去;新开一个终端,通过source~/.bashrc来执行一次.bashrc;
3)安装其他包:conda install package_namepip install package_name
4)更新包:conda update package_name,pip install --upgrade package_name

关于解释器

Python 是一个脚本语言,可以在 Python 解释器中直接写代码,也可以将代码写到一个即脚本文件里。
1)解释器:打开终端,键入pu t hon3回车,此时解释器便处于交互模式,输入C t r l+D退出解释器;
2)脚本文件:以vim为例,vim helloworld.py 启动vim并编辑hello world.py,输入代码;chmod +x helloworld.py为文件添加执行权限;./helloworld.py执行脚本文件(条件是代码里面有#!/usr/bin/env python3),否则使用python3执行;

代码风格

在 Python 中,空格很重要,如果行开始处缩进是错误的,Python 解释器会抛出错误。建议遵守以下约定:

  • 使用 4 个空格来缩进
  • 在函数之间空一行
  • 在类之间空两行
  • 字典,列表,元组以及参数列表中,在 , 后添加一个空格。对于字典,: 后面也添加一个空格
  • 注释`#

变量和数据类型

  • keywords
  • 不需要为指定数据类型;
  • 单行定义多个变量或者赋值,e.g.,
$ python3
>>> x , y = 12, 17
>>> a
12
>>> b
17

可以用来交换两个数的值:

>>> x, y = y , x
>>> x
17
>>> y
12

工作机制是元组(tuple)的封装(等号右边)和元组拆封(左边),eg.,

>>> data = ("shiyanlou", "China", "Python")
>>> name, country, language = data
>>> name
'shiyanlou'
>>> country
'China'
>>> language
'Python'

简单的代码例子:

1)下面的程序用来求 N 个数字的平均值。请将程序代码写入到文件 /home/shiyanlou/averagen.py 中,程序中将需要输入 10 个数字,最后计算 10 个 数字的平均值。

#!/usr/bin/env python3
N = 10
sum = 0
count = 0
print("please input 10 numbers:")
while count < N:
    number = float(input())
    sum = sum + number
    count = count + 1
average = sum / N
print("N = {}, Sum = {}".format(N, sum))
print("Average = {:.2f}".format(average))

运行程序:

$ chmod +x averagen.py
$ ./averagen.py

2)在下面的程序里,我们使用公式 C = (F - 32) / 1.8 将华氏温度转为摄氏温度。
{:5d} 的意思是替换为 5 个字符宽度的整数,宽度不足则使用空格填充。 {:7.2f}的意思是替换为为7个字符宽度的保留两位的小数,小数点也算一个宽度,宽度不足则使用空格填充。其中7指宽度为7,.2f指保留两位小数。

#!/usr/bin/env python3
fahrenheit = 0
print("Fahrenheit Celsius")
while fahrenheit <= 250:
    celsius = (fahrenheit - 32) / 1.8 # 转换为摄氏度
    print("{:5d} {:7.2f}".format(fahrenheit , celsius))
    fahrenheit = fahrenheit + 25

运算符和表达式

类型转换:

  • 字符串 -> 浮点值:float(string)
  • 字符串 -> 整数值:int(string)
  • 整数值 -> 字符串:str(integer)
  • 浮点值 -> 字符串:str(float)

一个栗子

计算半径为 2 的圆的面积并打印输出,保留小数点后10位:

$ cd /home/user/Code
$ touch CircleArea.py
$ python3 /home/user/Code/CircleArea.py
import math

# 计算圆的面积
area = 2 * 2 * math.pi

# 格式化输出圆的面积,保留10位小数
print("{:.10f}".format(area))

列表

  • 可以写作中括号之间的一列逗号分隔的值,列表的元素不必是同一类型:
>>> a = [ 1, 342, 223, 'India', 'Fedora']
>>> a
[1, 342, 223, 'India', 'Fedora']
  • 索引从零开始:
>>> a[0]
1
>>> a[4]
'Fedora'
>>> a[-1]
'Fedora'
  • 切片
>>> a[0:-1]
[1, 342, 223, 'India']
>>> a[2:-2]
[223]
>>> a[:]
[1, 342, 223, 'India', 'Fedora']

切片的索引有非常有用的默认值;省略的第一个索引默认为零,省略的第二个索引默认为切片的字符串的大小:

>>> a[:-2]
[1, 342, 223]
>>> a[-2:]
['India', 'Fedora']
 +---+-----+-----+---------+----------+
 | 1 | 342 | 223 | 'India' | 'Fedora' |
 +---+-----+-----+---------+----------+
   0    1     2       3        4          5
  -5   -4    -3      -2       -1
  • 对于非负索引,如果上下都在边界内,切片长度就是两个索引之差。例如 a[2:4] 是 2。
  • Python 中有关下标的集合都满足左闭右开原则,切片中也是如此,也就是说集合左边界值能取到,右边界值不能取到。对上面的列表, a[0:5] 用数学表达式可以写为 [0,5) ,其索引取值为 0,1,2,3,4,所以能将a中所有值获取到。 也可以用a[:5], 效果是一样的。而a[-5:-1],因为左闭右开原则,其取值为 -5,-4,-3,-2 是不包含 -1 的,为了取到最后一个值,可以使用 a[-5:] ,它代表了取该列表最后5个值。
  • 切片操作还可以设置步长
>>> a[1::2]
[342, 'India']

从切片索引 1 到列表末尾,每隔两个元素取值。

  • 列表连接操作
>>> a + [36, 49, 64, 81, 100]
[1, 342, 223, 'India', 'Fedora', 36, 49, 64, 81, 100]
  • 列表元素修改
>>> cubes = [1, 8, 27, 65, 125]
>>> cubes[3] = 64
>>> cubes
[1, 8, 27, 64, 125]
  • 要检查某个值是否存在于列表中
>>> a = ['ShiYanLou', 'is', 'cool']
>>> 'cool' in a
True
>>> 'Linux' in a
False
  • 获得列表的长度
>>> len(a)
3
  • 检查列表是否为空
if list_name: # 列表不为空
    pass
else: # 列表为空
    pass
  • 列表嵌套
>>> a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x
[['a', 'b', 'c'], [1, 2, 3]]
>>> x[0]
['a', 'b', 'c']
>>> x[0][1]
'b'

range()函数——生成数值序列(不是列表)

>>> for i in range(5):
...     print(i)
...
0
1
2
3
4
>>> range(1, 5)      
range(1, 5)
>>> list(range(1, 5))
[1, 2, 3, 4]
>>> list(range(1, 15, 3))
[1, 4, 7, 10, 13]
>>> list(range(4, 15, 2))
[4, 6, 8, 10, 12, 14]
发布了33 篇原创文章 · 获赞 1 · 访问量 1254

猜你喜欢

转载自blog.csdn.net/weixin_44783002/article/details/104524811