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. 2019-2020-1 20199328《Linux内核原理与分析》第七周作业

    分析Linux内核创建一个新进程的过程 2019/10/28 18:34:58 笔记部分 首先是查看进程描述符(用来描述进程,其代码比较庞大)的一些内容 系统调用回顾 fork.vfork.clone ...

  2. 2019-2020-1 20199329 第二周测试(环境:ubuntu64位)

    2019-2020-1 20199329 第二周测试(环境:ubuntu64位) 实验一 0.每个.c一个文件,每个.h一个文件,文件名中最好有自己的学号 1.用Vi输入图中代码,并用gcc编译通过 ...

  3. char * 转 wchar *

    ) ) https://github.com/ffftp/ffftp/commit/0b1ea7a23dc6c72d519edbdeb30f48b3c7c8e867

  4. java.util.concurrent简介

    文章目录 主要的组件 Executor ExecutorService ScheduledExecutorService Future CountDownLatch CyclicBarrier Sem ...

  5. history of program atan2(y,x)和pow(x,y)

    编年史 1951 – Regional Assembly Language 1952 – Autocode 1954 – IPL (LISP语言的祖先) 1955 – FLOW-MATIC (COBO ...

  6. Codeforces Round #509 (Div. 2) A. Heist 贪心

    There was an electronic store heist last night. All keyboards which were in the store yesterday were ...

  7. Codeforce 1311A Add Odd or Subtract Even

    Add Odd or Subtract Even time limit per test2 seconds memory limit per test256 megabytes inputstanda ...

  8. visibility: hidden 和 display: none的区别

    相同点: 两者都可以将dom元素隐藏 不同点: 1.display: none 隐藏之后不占用文档流,而visibility: hidden却会占用文档流,如果要在隐藏元素的同时获取其尺寸信息,那就可 ...

  9. CRT 连接AWS-EC2

    crt使用.pem登录AWS服务器 网上看到方案如下,看到大部分人都成功了,一头雾水,我的crt不需要pub文件.... chmod xxx.pem ssh-keygen -p -f xxx.pem ...

  10. Codeforces Round #632 (Div. 2)

    Codeforces Round #632 (Div. 2) 这一场打的好差呀,这几次艰难上的分全部掉回去了,感觉就像一夜回到了解放前. 说实话,就是被B卡到了,没看到只能从小的放到大的... Lit ...