0%

Python 模块(module)

import

import module1[, module2[,… moduleN]

  • 在当前路径下搜索模块,如果没有,就在sys.path中的路径搜索。
  • 导入模块后,需要以模块名.函数访问模块中的内容
  • 一个模块只会被导入一次,不管执行了多少次import
    Read more »

  1. 单字符就是长度为1的字符串
  2. 字符串不能被改变。向一个索引位置赋值,比如 word[0] = 'm' 会导致错误。
  3. 字符串可迭代

字符串的运算

  • + 字符串连接
  • * 重复输出字符串
  • [] 通过索引获取字符串中字符
  • [ : ] 截取字符串中的一部分,[a,b).不写ab表示原字符串(或列表)的拷贝。
  • in / not in 如果字符串中包含给定的字符返回 True
  • r/R"str" 所有的字符串都是直接按照字面的意思来使用.
  • % 格式字符串
Read more »

列表(list)

  • 创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可
  • Python已经内置确定序列的长度以及确定最大和最小的元素的方法。
  • 数据项不需要具有相同的类型
  • 删除列表元素用 del list[i]
    1
    2
    3
    4
    list = ['Google', 'Runoob', 1997, 2000]
    del list[2]

    ## ['Google', 'Runoob', 2000]
Read more »

安装

新建用户python

1
2
useradd python      
passwd python # 用root设置密码

pyenv命令:

  • pyenv help install    显示帮助
  • pyenv install –list   所有可安装版本
  • pyenv install 3.7.2   安装 python3.7.2
  • pyenv versions        所有可用的版本
  • pyenv version          当前的python版本

缓存方式安装:

  • ~/.pyenv下新建cache目录,放入安装文件(.tar.xz或.tgz)

切换版本:

  • pyenv global 3.5.3(或system):调整当前用户的python版本(影响太大)
  • pyenv shell : 只影响当前会话
  • pyenv local 3.5.3 : 和目录相关,(子目录继承)已安装的包会冲突

虚拟环境

在自定义目录下创建虚拟环境:

pyenv virtualenv 3.5.3 mpytest372(子环境)

切换到虚拟环境:

pyenv local mpytest372

查看可用版本:

1
2
3
4
5
[python@twilight ~]$ pyenv versions
* system (set by /home/python/.pyenv/version)
3.7.2
3.7.2/envs/pytest372
pytest372

使用pip镜像:

Linux下

修改修改 ~/.pip/pip.conf , 内容如下:

1
2
3
4
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com # 阿里的镜像

Windows下

windows下,直接在user目录中创建一个pip目录,再新建文件 pip.ini 。(例如: C:\Users\twili\pip\pip.ini )内容同上。

开启tomcat失败,报错提示 Permission denied 报错信息如下:

1
2
3
4
5
6
7
8
9
10
11
12
Caused by: java.net.SocketException: Permission denied
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:210)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1082)
at org.apache.tomcat.util.net.AbstractJsseEndpoint.init(AbstractJsseEndpoint.java:267)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:581)
at org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:66)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:993)

原因是在Centos7 中,非root用户不能开启1024以下的端口。比如我用twilight用户开启tomcat,就会报错。解决方法是通过iptables防火墙重定向端口,将80端口重定向到8080端口上去。
在Centos7中,默认的防火墙是 firewalld 需要先挂关闭它,再使用iptables防火墙。

Read more »

修改 Centos7为字符界面

Centos7取消了之前的 inittab文件的作用,改用命令实现,

  • systemctl get-default : 获得默认启动方式
  • systemctl set-default multi-user.target : 设置字符界面启动方式(level3)
  • systemctl set-default graphical.target : 设置图形化启动方式(level5)
    Read more »

tr

tr 命令用于转换或删除文件中的字符。从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。
tr [-cdst][--help][--version][第一字符集][第二字符集]

参数:

  • -c, –complement:反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换
  • -d, –delete:删除指令字符
  • -s, –squeeze-repeats:缩减连续重复的字符成指定的单个字符
  • -t, –truncate-set1:削减 SET1 指定范围,使之与 SET2 设定长度相等
  • –help:显示程序用法信息
  • –version:显示程序本身的版本信息
    Read more »

for 循环

语法一:

1
2
3
4
for 变量 in value1 value2 value3...
do
// do something
done

语法二 :

1
2
3
4
for (( 初始值;循环控制条件;变量变化 ))
do
// do something
done
Read more »