[转]Python扫盲

0,ubuntu更改python版本指向。将当前使用conda install的python3.7用于系统和用户默认的python版本

1, 查看当前用户的python位置:$ which python3.7 2,查看全局(系统)的python位置:$ sudo which python3$ sudo which python3.5发现系统没有3.7 3,修改当前用户的的python版本:$ sudo vi ~/.bashrc加入:alias python='/home/user1/miniconda3/bin/python3.7'$ source ~/.bashrc 4,修改全局(系统)的python版本:新建一个软连接。注意前面是安装位置,后面是软连接文件位置$ sudo ln -s /home/user1/miniconda3/bin/python3 /usr/bin/python3.7 # 参考:https://blog.csdn.net/White_Idiot/article/details/78240298

1,

  • Python不需要预先定义变量,随用随定义
  • 0 == False, 1 == True,
  • 0.0 == False, 1.0 == True,没错,用来做条件判断的时候他们就是完全相等的

python的变量名和对象是分离的,给变量名重新赋值之后,该变量名就指向另外一个对象。之前被指向的对象,它的引用计数就减1,如果引用计数减为0,则被回收。对象是带有类型的。变量名没有类型信息。

 

2,python3.6和python3.6m的区别:

  • 初始安装的Linux Ubuntu18.04系统的/usr/bin/下面有四个文件:python3  python3.6  python3.6m  python3m
  • 其中 python3.6  python3.6m为可执行文件,python3、python3m分别为指向这两个文件的链接文件

如何查看文件类型:https://blog.csdn.net/qxqxqzzz/article/details/89175005

  • python3.6m:m代表配置了pymalloc的python,pymalloc比系统自带的malloc分配内存更快
  • python3.6:没有使用上述配置
  • 什么时候需要使用python3.6m:可能在编写c扩展的时候最有用,一般情况下不需要考虑。

3,安装python需要的包:

# 查看python安装在哪了$ whereis python # 使用清华源更新pip$ pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U # 将清华源设置成默认$ pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple # 使用清华源安装软件,安装sklearn不需要预先手动安装scipy等依赖,新版pip会自动安装$ pip install sklearn # 查看某个安装包的版本、安装目录$ pip show neo4j  # 内网环境使用代理一次安装多个包, xx为代理上网的服务器地址$ sudo -H pip --proxy=xx.xxx.xx.xxx:8080 install scipy numpy matplotlib pypng # 还是不行?SSL报错?设置可信域名!# 参考:https://blog.csdn.net/qxqxqzzz/article/details/101675559$ sudo -H pip3 --proxy=xx.xxx.xx.xxx:8080 --trusted-host pypi.org --trusted-host files.pythonhosted.org install logging # 重装pip参考:https://blog.csdn.net/qxqxqzzz/article/details/101776575# 如果 sudo -H 不好使就试试在命令后面加上 --user,也是一样的作用。指定为当前用户

永久性配置pip:

修改~/.pip/pip.conf (没有就创建一个):

$ sudo vi ~/.pip/pip.conf

加入:

[global]proxy= http://10.xxx.xxx.xxx:8080index-url= https://mirrors.aliyun.com/pypi/simple/extra-index-url= https://pypi.tuna.tsinghua.edu.cn/simple [install]trusted-host= mirrors.aliyun.com files.pythonhosted.org pypi.org pypi.tuna.tsinghua.edu.cn

注意:同一个字段的不同值中间用空格隔开(或者换行之后在每一行前面加一个空格代表上一行的延续)

 

4,从dict中取出key (取出来的k就是key)

(k, v), = r.items() # 小逗号很重要,尤其是字典r里只有一个item时,可用于json串解析

参考:https://blog.csdn.net/qianghaohao/article/details/78994040

5,弹出提示框:https://blog.csdn.net/lsxht95/article/details/79995112

6,获取文件修改时间:

import os,time time.ctime(os.stat("c:/1.txt").st_mtime) #文件的修改时间 time.ctime(os.stat("c:/1.txt").st_ctime) #文件的创建时间(文件被拷贝到当前文件夹的时间)

https://blog.csdn.net/liyuan_669/article/details/25347037

7,对元组列表(tuple list)中的所有元素的第一个元素进行操作?

方法有两种,第一种用推导式;我用的是第二种,转成Numpy数组。两种方法有略微差别,但是取出来的数都可以用于横纵坐标作散点图:

import numpy as np d = [(1, 2), (2, 4), (3, 6), (4, 8), (5, 10)] # 方法一:列表推导式[x[0] for x in d] # [1, 2, 3, 4, 5][x[1] for x in d] # [2, 4, 6, 8, 10] # 方法二,转成numpy数组e = np.array(d) # shape=(5,2)# 取出列表中所有元素(即每个元组)的第一个元素e[:,0] # [1 2 3 4 5]# 同理,取出第二个元素e[:,1] # [ 2  4  6  8 10]

8,Python多线程多进程的特点

多线程:

Python提供两个模块进行多线程的操作,分别是threadthreading,前者是比较低级的模块,用于更底层的操作,一般应用级别的开发不常用。

多进程:

python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程。Python提供了非常好用的多进程包multiprocessing,只需要定义一个函数,Python会完成其他所有事情。

 

9,查看当前平台支持什么版本的pip包(.whl文件)

import pip._internalprint(pip._internal.pep425tags.get_supported()) # 输出类似于[('cp27', 'cp27mu', 'manylinux1_x86_64'), ('cp27', 'cp27mu', 'linux_x86_64'), ('cp27', 'none', 'manylinux1_x86_64'), ('cp27', 'none', 'linux_x86_64'), ('py2', 'none', 'manylinux1_x86_64'), ('py2', 'none', 'linux_x86_64'), ('cp27', 'none', 'any'), ('cp2', 'none', 'any'), ('py27', 'none', 'any'), ('py2', 'none', 'any'), ('py26', 'none', 'any'), ('py25', 'none', 'any'), ('py24', 'none', 'any'), ('py23', 'none', 'any'), ('py22', 'none', 'any'), ('py21', 'none', 'any'), ('py20', 'none', 'any')]

10,python定义正无穷、负无穷或NaN(非数字)的浮点数

>>> a = float('inf')>>> b = float('-inf')>>> c = float('nan')

参考:https://python3-cookbook.readthedocs.io/zh_CN/latest/c03/p07_infinity_and_nan.html

 

11, python的dict内部存放的顺序和key放入的顺序是没有关系的。

就是按照先后顺序放入的key和value,在dict中不一定是按照这个顺序存的。所以输出会乱!!!!!!

你想要按照顺序,就用list存吧!

 

12,pip安装:直接参考安装/安装官网下载get-pip.py文件然后解压安装

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.pypython3.6 get-pip.py

pip的配置:~/.pip/pip.conf

https://www.cnblogs.com/night-xing/p/12094099.html

报错:While reading from '/Users/***/.pip/pip.conf' [line 4]: option 'xxx' in section 'yyy' already exists

报错的原因是配置文件中在[yyy]下面有多条重复的xxx项目(key)配置,相同项目(key)如果要配置多个值(value),应该使用空格分隔,而不能使用同样的key,写多行。

13,提升局部变量为全局变量

# 1,在函数外定义一个全局变量a = 10def fun1():    pass # 2,引用函数外定义的全局变量a = 10def fun1():    global a    print(a) # 3,在函数内定义一个局部变量、赋值,并提升为全局变量def fun1():    global a    a = 10 # 4,在其他函数中使用上述函数内部定义的全局变量,要先运行之前定义它的函数def fun2():    fun1()    print(a)

感谢:https://blog.csdn.net/chutianwen1464/article/details/100981704

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值