1.python 格式化print

#/usr/bin/env python
#-*- coding: utf-8 -*-
#Author:jenvid.yang
# 连接符号+,可以连接多个变量或者需要描述内容,连接符号中间并不会产生空格
# 尽量不用连接符号+,每次连接需要开辟内存空间
print('hello' + 'world!')
print('hello' + ' world!')
# helloworld!
# hello world! # 占位符,%s字符输出,%d整形输出,%f浮点型输出
# 常用,只开辟一次内存空间
num1=1
num2=2.2
num3=3
name='yzw'
print('num1 is %d, num2 is %f, num2 is %d, num3 is %f,name is %s' % (num1,num2,num2,num3,name))
# num1 is 1, num2 is 2.200000, num2 is 2, num3 is 3.000000,name is yzw
# 小数点保留0.2或者.2表示保留2位小数点
print('num2 is %0.2f, num3 is %.3f' % (num2,num3))
# num2 is 2.20, num3 is 3.000
# 占位符宽度,常用对齐,%n表示左边补空格+原字符串个数共占n,
print('name is %10s' %(name))
print('name is %8s' %(name))
print('name is %6s' %(name))
print('name is %s' %(name))
#name is yzw
# name is yzw
# name is yzw
# name is yzw
# -号表示右边留空
print('name is %-10s,%d' %(name,num1))
# name is yzw , # format格式输出,format(数值, '格式'),花括号表示输出顺序,与format里面变量一致
print ('{0} {1}:{2}'.format(num1,num2,num3))
# 1 2.2:3

print显示颜色

格式:\033[显示方式;字体颜色;背景颜色m 需要输出的内容 [\033[0m

-------------------------------------------
字体色 | 背景色 | 颜色描述
-------------------------------------------
30 | 40 | 黑色
31 | 41 | 红色
32 | 42 | 绿色
33 | 43 | 黃色
34 | 44 | 蓝色
35 | 45 | 紫红色
36 | 46 | 青蓝色
37 | 47 | 白色
-------------------------------------------
-------------------------------
显示方式 | 效果
-------------------------------
0 | 终端默认设置
1 | 高亮显示
4 | 使用下划线
5 | 闪烁
7 | 反白显示
8 | 不可见
-------------------------------

2.while/for...else

  • break结束最近的循环
  • continue结束当次循环,继续最近循环的下一次循环
  • 其他语言好像没有else子句
  • 循环结束判断条件常用语循环体内最后增加技术方法
#/usr/bin/env python
#-*- coding: utf-8 -*-
#Author:jenvid.yang
count = 0
num2 = 2
while count < 3:
num1 = int(input('pls guest a number:'))
if num1 > num2:
print('bigger')
elif num1 < num2:
print('smaller')
else:
print('bingo I am if else')
break
count+=1
else:
print('I am while else')
# I am if else
# while循环内部只要成功执行一次,同级别else不执行
# pls guest a number:1
# smaller
# pls guest a number:3
# bigger
# pls guest a number:2
# bingo I am if else # while循环内部if判断全失败,则执行else
# pls guest a number:1
# smaller
# pls guest a number:1
# smaller
# pls guest a number:1
# smaller
# I am while else # for...else一样,记忆方法:while/for...else有且只有一个执行

3.模块sys

  • sys.path查看lib默认环境变量
>>> import sys
>>> l_env = sys.path
>>> for i in l_env:
... print(i)
... /usr/lib/python35.zip
/usr/lib/python3.5
/usr/lib/python3.5/plat-x86_64-linux-gnu
/usr/lib/python3.5/lib-dynload
/usr/local/lib/python3.5/dist-packages
/usr/lib/python3/dist-packages
  • sys.path.append添加自定义路径
>>> print(sys.path)
['', '/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/usr/lib/python3.5/lib-dynload', '/usr/local/lib/python3.5/dist-packages', '/usr/lib/python3/dist-packages']
>>> sys.path.append("/root/")
>>> print(sys.path)
['', '/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/usr/lib/python3.5/lib-dynload', '/usr/local/lib/python3.5/dist-packages', '/usr/lib/python3/dist-packages', '/root/']
  • 通过在/usr/local/lib/python3.5/dist-packages (ubuntu)下增加xxx.pth 加入自定义路径
root@T450:/usr/local/lib/python3.5/dist-packages# cat custom.pth
/home/yangzhenwei
import sys
l_env = sys.path
for i in l_env:
print(i)
print (sys.path) #默认全局环境变量 /usr/bin/python3.5 /root/PycharmProjects/S14/day02/sys_mod.py
/root/PycharmProjects/S14/day02
/root/PycharmProjects/S14
/usr/lib/python35.zip
/usr/lib/python3.5
/usr/lib/python3.5/plat-x86_64-linux-gnu
/usr/lib/python3.5/lib-dynload
/usr/local/lib/python3.5/dist-packages
/home/yangzhenwei
/usr/lib/python3/dist-packages
  • sys.argv[0]
  1. 如果是在命令行中执行,则返回一个空的字符串
  2. 在pycharm中执行,则返回当前py文件的全路径文件名

>>> cmd1=sys.argv[0]
>>> print(type(cmf1))
>>> print(type(cmd1))
<class 'str'>
>>> print(cmd1)
  1. 在命令行中执行py文件,取外部参数
import sys
print(sys.argv[0])
print(sys.argv[1])
print(sys.argv[2]) #python sys_mod.py 1 2 3
sys_mod.py
1
2

4.模块os

  • os.system执行shell命令,但是不保存结果
>>> import os
>>> cmd_res = os.system("df -h")
文件系统 容量 已用 可用 已用% 挂载点
udev 3.8G 0 3.8G 0% /dev
tmpfs 769M 9.5M 759M 2% /run
/dev/sda5 230G 214G 5.2G 98% /
tmpfs 3.8G 56M 3.7G 2% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup
tmpfs 769M 72K 769M 1% /run/user/1000
>>> print(cmd_res)
0
  • os.popen执行shell命令,返回内存地址
>>> cmd_res1 = os.popen("df -h")
>>> print(cmd_res1)
<os._wrap_close object at 0x7ff0760c44e0>
>>>
  • os.open().read(),执行shell命令,保存结果/返回打印内容
>>> cmd_res2 = os.popen("df -h").read()
>>> print(cmd_res2)
文件系统 容量 已用 可用 已用% 挂载点
udev 3.8G 0 3.8G 0% /dev
tmpfs 769M 9.5M 759M 2% /run
/dev/sda5 230G 214G 5.2G 98% /
tmpfs 3.8G 56M 3.7G 2% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup
tmpfs 769M 72K 769M 1% /run/user/1000
  • os.mkdir 在当前目录创建一个目录,如果已经存在,则报错
  • mkdir(path, mode=511, *, dir_fd=None),可以指定os权限
  • os.rmdir 在当前目录删除指定目录,如果目录内有文件,则报错
  • 导入自定义模块
  1. 首先增加自定模块,准备导入day01_login_03.py
  2. root@T450:/usr/local/lib/python3.5/dist-packages# cat custom.pth
    /home/yangzhenwei
    /root/PycharmProjects/S14/day01/bin
  3. 导入到自定义py文件里面如果有相对路径,会自动变成本py的相对路径
    #/usr/bin/env python
    #-*- coding: utf-8 -*-
    #Author:jenvid.yang
    import day01_login_03 usercontent = open('../config/users.inf', 'r')
    FileNotFoundError: [Errno 2] No such file or directory: '../config/users.inf'
  4. 暂时复制相关文件到相对目录
  5. python3.5 import_custom_mod_py.py
    pls input your name:alex
    pls input your password:
    your username or password is invalid,pls reinput!
    pls input your name:ale
    pls input your password:
    your username or password is invalid,pls reinput!
    pls input your name:alex
    pls input your password:
    welcome login system alex
  6. pyc,预编译文/部分编译,第一次运行py文件会将结果存到该文件,二次运行比较源文件和编译文件时间戳,决定是否重新解释执行源文件

5.str.isdigit

  • 判断字符是否全部由数字组成,否则为false
  • >>> a=''
    >>> a.isdigit()
    True
    >>> b='aa11'
    >>> b.isdigit()
    False

6.is(is not)运算符

  • 用于判断一个对象是否是某种类型
  • >>> type('') is str
    True
    >>> a=[1,2]
    >>> type(a) is list
    True
root@T450:/usr/local/lib/python3.5/dist-packages# cat custom.pth
/home/yangzhenwei
/root/PycharmProjects/S14/day01/bi

7.二进制位运算

  • a 为 60,b 为 13
  • a = 0011 1100
    
    b = 0000 1101
运算符 描述 实例
& 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 (a & b) 输出结果 12 ,二进制解释: 0000 1100
| 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 (a | b) 输出结果 61 ,二进制解释: 0011 1101
^ 按位异或运算符:当两对应的二进位相异时,结果为1 (a ^ b) 输出结果 49 ,二进制解释: 0011 0001
~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1 (~a ) 输出结果 -61 ,二进制解释: 1100 0011,在一个有符号二进制数的补码形式。
<< 左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。 a << 2 输出结果 240 ,二进制解释: 1111 0000
>> 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数 a >> 2 输出结果 15 ,二进制解释: 0000 1111
  • &真真为真,|真假为真,^相异为真,~真假互换,<<左移丢高补低,>>右移丢低补高

8.三元运算

  • 值=a if a > b else c,条件为真取a,否则取c
  • >>> a,b,c=1,2,3
    >>> a if a>b else c
    3
    >>> b if a<b else c
    2

9.字符与bytes转换

  • str->encode->bytes,bytes->decode->str
  • 3.x网络传输必须是二进制,2.x可以是zifuchuan
  • 默认编码encodeing=('utf-8')
    >>> msg1='水电费水电费'
    >>> msg2='asdfasdf'
    >>> print(msg1.encoding=('utf-8'))
    b'\xe6\xb0\xb4\xe7\x94\xb5\xe8\xb4\xb9\xe6\xb0\xb4\xe7\x94\xb5\xe8\xb4\xb9'
    >>> print(msg2.encoding=('utf-8'))
    b'asdfasdf'
    >>> print(msg1.encode(encoding='utf-8').decode(encoding='utf-8'))
    水电费水电费

10.数据类型list

  • 排序/反转操作原列表
  • pop默认弹出最后一个元素
  • 赋值直接给下标
>>> city=[]
>>> city.append('guangzhou')
>>> city
['guangzhou']
>>> city.append('foshan')
>>> city
['guangzhou', 'foshan']
>>> city.insert(0,'dongguan')
>>> city
['dongguan', 'guangzhou', 'foshan']
>>> city[0]
'dongguan'
>>> city[0-1]
'foshan'
>>> city[-1]
'foshan'
>>> city.insert(1,'zhuhai')
>>> city
['dongguan', 'zhuhai', 'guangzhou', 'foshan']
>>> city[::-2]
['foshan', 'zhuhai']
>>> city[::2]
['dongguan', 'guangzhou']
>>> city.pop()
'foshan'
>>> city
['dongguan', 'zhuhai', 'guangzhou']
>>> city.remove('dongguan')
>>> city
['zhuhai', 'guangzhou']
>>> city.sort()
>>> city
['guangzhou', 'zhuhai']
>>> city.reverse()
>>> city
['beijing', 'guangzhou', 'zhuhai']
>>> city[0]='shenzhen'
>>> city
['shenzhen', 'guangzhou', 'zhuhai']
  • copy 浅复制,只复制第一层,深复制导入copy模块,用deepcopy方法
  • 多层嵌套的时候,内部是内存地址/指针,因此改一个全部改
>>> city
['shenzhen', 'guangzhou', 'zhuhai']
>>> city1=['chongqing','chengdu']
>>> city.extend(city1)
>>> city
['shenzhen', 'guangzhou', 'zhuhai', 'chongqing', 'chengdu']
>>> city2=['shanghai','hangzhou']
>>> city[1]=city2
>>> city
['shenzhen', ['shanghai', 'hangzhou'], 'zhuhai', 'chongqing', 'chengdu']
>>> city3=city.copy()
>>> city3
['shenzhen', ['shanghai', 'hangzhou'], 'zhuhai', 'chongqing', 'chengdu']
>>> city3[1][0]='SHANGHAI'
>>> city
['shenzhen', ['SHANGHAI', 'hangzhou'], 'zhuhai', 'chongqing', 'chengdu']
>>> city3
['shenzhen', ['SHANGHAI', 'hangzhou'], 'zhuhai', 'chongqing', 'chengdu']
>>> city[0]='Shenzhen'
>>> city
['Shenzhen', ['SHANGHAI', 'hangzhou'], 'zhuhai', 'chongqing', 'chengdu']
>>> city3
['shenzhen', ['SHANGHAI', 'hangzhou'], 'zhuhai', 'chongqing', 'chengdu']
>>>
  • 补充浅copy
>>> import copy
>>> person=['name',['age',100]]
>>> p1=copy.copy(person)
>>> p2=person[:]
>>> p3=list(person)
>>> print(p1,p2,p3)
['name', ['age', 100]] ['name', ['age', 100]] ['name', ['age', 100]]
>>> print(id(p1),id(p2),id(p3))
140006071338632 140006094074952 140006094157064
  • list.index('value')获取某个元素的下标

11.数据类型元组tuple

  • 元组不能更改,只读列表

12. 列表索引获取enumerate

>>> list1=['a','b','c','d']
>>> for key,values in enumerate(list1):
... print(key,values)
...
0 a
1 b
2 c
3 d

13.数据类型字符串str

http://www.cnblogs.com/jenvid/p/7808498.html

14.数据类型字典dict

http://www.cnblogs.com/jenvid/p/7809329.html

15.未完待续

python3.x 基础一的更多相关文章

  1. python_way ,day1 编译安装python3、基础及流程控制

    本节内容: 1,Python介绍发展史 2,安装 3,Hello World 4,程序 5,变量,字符编码 6,用户输入 7,模块初识 一.python介绍 python的创始人为吉多·范罗苏姆(Gu ...

  2. Python全栈工程师(Python3 所有基础内容 0-0)

    ParisGabriel              每天坚持手写  一天一篇  决定坚持几年 为了梦想为了信仰    开局一张图     Python一个月的基础语法 基本就到这咯    接下来是数据 ...

  3. Python3零基础入门学习视频+源码+课件+习题-小甲鱼

    目录 1. 介绍 2. 目录 3. 下载地址 1. 介绍 适用人群 完全零基础入门,不需要任何前置知识. 课程概述 本系列教程面向零基础的同学,是一个深入浅出,通俗易懂的Python3视频教程. 前半 ...

  4. Python3 面向对象(基础篇)

    面向对象 关于面向对象的标准定义网上有很多,不再讲述,现在我们来通俗点理解: 面向对象编程相对于面向过程编程和函数式编程来说,看的更长远,实现功能相对更简单. 面向对象:对象就是物体,这种编程思想就是 ...

  5. python3的基础练习题

    1. 执行 Python 脚本的两种方式 1)/usr/bin/python3 xx.py 2)python3 xx.py #注xx.py需要在内容里面调用由什么解释器执行 2. 简述位.字节的关系 ...

  6. python3.0_day9_scoket基础之篇

    一.socket简单介绍 socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求 ...

  7. python3.3 基础 新特性

    前段时间看到对 python 之父的采访,持 python应尽量使用新版的态度. 所以学习,就从比较新的版本开始吧. 3.x 之后的版本与2.x 的版本还是有些不同,仅从入门的基础部分即可感受到, 比 ...

  8. Python3的基础

    Python的3.0版本,常被称为Python 3000,或简称Py3k. 关于Python版本的下载:https://www.python.org/,以及Anaconda的下载:https://ww ...

  9. Python3入门基础--str常用方法

    Python基础之String常用方法 str():将其他类型的变量转换为str类型,例如: name = 'Jack' age = 22 course = ['web','Java','mysql' ...

  10. Python3根据基础概率随机生成选项

    想要实现一个功能:不同事件发生的基础概率不同,根据基础概率来随机生成选项. 比如,北京的秋天有四种状态,并分别对应一个基础概率,然后随机生成某一天的天气情况. weatherlist = ['Sunn ...

随机推荐

  1. .Net平台GC VS JVM垃圾回收

    前言 不知道你平时是否关注程序内存使用情况,我是关注的比较少,正好借着优化本地一个程序的空对比了一下.Net平台垃圾回收和jvm垃圾回收,顺便用dotMemory看了程序运行后的内存快照,生成内存快照 ...

  2. asList和ArrayList不得不说的故事

    目录 简介 创建ArrayList UnsupportedOperationException asList 转换 总结 asList和ArrayList不得不说的故事 简介 提到集合类,ArrayL ...

  3. 移动App性能测评与优化1.4.4 多进程应用

    1.4.4 多进程应用 根据上一节中的描述,当一个进程结束后,它所占用的共享库内存将会被其他仍然使用该共享库的进程所分担,共享库消耗的物理内存并不会减少.实际上,对于所有共享使用了这个库的应用,Pss ...

  4. centos6 yum安装jdk1.8+

    一.环境Linux操作系统: centos6.9 安装jdk版本: jdk1.8+ 二.安装步骤1. 检查系统是否自带有jdk[root@VM_0_11_centos ~]# rpm -qa |gre ...

  5. HDU2937 YAPTCHA(威尔逊定理)

    YAPTCHA Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  6. c++ concurrency

    c++的并发涉及到这么几个东西: std::thread std::mutex std::lock_guard std::lock 参考资料: http://en.cppreference.com/w ...

  7. HTML data-* 属性的含义和使用

      data-*自定义数据属性 首先讲一下语法格式: data-* =“值” data-* 属性包括两部分: 属性名不应该包含任何大写字母,并且在前缀 "data-" 之后必须有至 ...

  8. opencv基于PCA降维算法的人脸识别

    opencv基于PCA降维算法的人脸识别(att_faces) 一.数据提取与处理 # 导入所需模块 import matplotlib.pyplot as plt import numpy as n ...

  9. P3467(矩形覆盖问题)

    描述:https://www.luogu.com.cn/problem/P3467 1.考虑如果整个建筑物链是等高的,一张高为链高,宽为整个建筑物宽的海报即可完全覆盖: 2.若有两个不等高的元素组成建 ...

  10. 吃零食 csust oj 贪心

    吃零食 桌上有n袋零食,不同的零食会有不同的美味程度wi和腐坏程度di,每种零食在一单位时间内美味程度都会下降di,但是不会降到0以下. qwb每一单位时间可以吃掉一袋零食.现在qwb想要在吃完所有零 ...