python3.x 基础一
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]
- 如果是在命令行中执行,则返回一个空的字符串
在pycharm中执行,则返回当前py文件的全路径文件名
>>> cmd1=sys.argv[0]
>>> print(type(cmf1))
>>> print(type(cmd1))
<class 'str'>
>>> print(cmd1)
- 在命令行中执行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 在当前目录删除指定目录,如果目录内有文件,则报错
- 导入自定义模块
- 首先增加自定模块,准备导入day01_login_03.py
root@T450:/usr/local/lib/python3.5/dist-packages# cat custom.pth
/home/yangzhenwei
/root/PycharmProjects/S14/day01/bin- 导入到自定义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' - 暂时复制相关文件到相对目录
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- 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 基础一的更多相关文章
- python_way ,day1 编译安装python3、基础及流程控制
本节内容: 1,Python介绍发展史 2,安装 3,Hello World 4,程序 5,变量,字符编码 6,用户输入 7,模块初识 一.python介绍 python的创始人为吉多·范罗苏姆(Gu ...
- Python全栈工程师(Python3 所有基础内容 0-0)
ParisGabriel 每天坚持手写 一天一篇 决定坚持几年 为了梦想为了信仰 开局一张图 Python一个月的基础语法 基本就到这咯 接下来是数据 ...
- Python3零基础入门学习视频+源码+课件+习题-小甲鱼
目录 1. 介绍 2. 目录 3. 下载地址 1. 介绍 适用人群 完全零基础入门,不需要任何前置知识. 课程概述 本系列教程面向零基础的同学,是一个深入浅出,通俗易懂的Python3视频教程. 前半 ...
- Python3 面向对象(基础篇)
面向对象 关于面向对象的标准定义网上有很多,不再讲述,现在我们来通俗点理解: 面向对象编程相对于面向过程编程和函数式编程来说,看的更长远,实现功能相对更简单. 面向对象:对象就是物体,这种编程思想就是 ...
- python3的基础练习题
1. 执行 Python 脚本的两种方式 1)/usr/bin/python3 xx.py 2)python3 xx.py #注xx.py需要在内容里面调用由什么解释器执行 2. 简述位.字节的关系 ...
- python3.0_day9_scoket基础之篇
一.socket简单介绍 socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求 ...
- python3.3 基础 新特性
前段时间看到对 python 之父的采访,持 python应尽量使用新版的态度. 所以学习,就从比较新的版本开始吧. 3.x 之后的版本与2.x 的版本还是有些不同,仅从入门的基础部分即可感受到, 比 ...
- Python3的基础
Python的3.0版本,常被称为Python 3000,或简称Py3k. 关于Python版本的下载:https://www.python.org/,以及Anaconda的下载:https://ww ...
- Python3入门基础--str常用方法
Python基础之String常用方法 str():将其他类型的变量转换为str类型,例如: name = 'Jack' age = 22 course = ['web','Java','mysql' ...
- Python3根据基础概率随机生成选项
想要实现一个功能:不同事件发生的基础概率不同,根据基础概率来随机生成选项. 比如,北京的秋天有四种状态,并分别对应一个基础概率,然后随机生成某一天的天气情况. weatherlist = ['Sunn ...
随机推荐
- 2019-2020-1 20199310《Linux内核原理与分析》第一周作业
1.问题描述 1.1 问题一 Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,探究根目录下主要文件用途. 1.2 问题二 有一个非常重要的文件(passw ...
- 2019-2020-1 20199326《Linux内核原理与分析》第九周作业
进程的切换和系统的一般执行过程 中断 中断在本质上都是软件或者硬件发生了某种情形而通知处理器的行为,处理器进而停止正在运行的指令流(当前进程),对这些通知做出相应反应,即转去执行预定义的中断处理程序( ...
- QQ靓号资料空白且空间开通教程
QQ靓号资料空白且空间开通教程 首先你需要两个QQ号第一个是普通QQ号第二个是去这个官方网站注册一个QQ免费靓号https://ssl.zc.qq.com/v3/index-chs.html?type ...
- 【集群实战】sersync
1. sersync介绍 sersync功能: 实时同步: sersync组成: sersync==inotify+rsync inotify: 监控某个目录下面"文件/目录"是否 ...
- material UI中withStyles和makeStyles的区别
在material UI中,withStyles和makeStyles是经常使用的两个用于封装样式的函数.对于刚使用material UI的开发者而言,可能不太清楚这两者的区别. 本文简要探究 ...
- Highcharts的自适应DOM或者DIV,JS方法实现
那我们就按照官网的一分钟极速入门代码来说 // 图表配置 var options = { chart: { type: 'bar' //指定图表的类型,默认是折线图(line) }, title: { ...
- Radware:上周五美国大规模DDoS攻击是如何发生的
10月21日上午,Dyn遭受到拒绝服务(DoS)攻击,造成了托管DNS网络的中断.成千上万的网站因此变得不可访问,其中包括Amazon EC2.当天晚些时候,当攻击者发起第二轮针对Dyn DNS系统的 ...
- 图论--Floyd总结
Key word: ①最短路 ②传递闭包:大小关系 数值关系 先后关系 联通关系 ③floyd变形 ④实现方式:插点发法 ⑤思想:动态规划 1.最短路: 最短路 ...
- HTML(标题/图片/链接/列表标签)
<!DOCTYPE html> 声明 <!DOCTYPE html> 是 html5 标准网页声明,全称为 Document Type HyperText Mark-up La ...
- SVN 部署(基于 Linux)
1.通过 yum 命令安装 svnserve,命令如下: # 此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行 yum -y install subversion # 若需查看 ...