Python开发【第二章】:模块和运算符
一、模块初识:
Python有大量的模块,从而使得开发Python程序非常简洁。类库有包括三中:
- Python内部提供的模块
- 业内开源的模块
- 程序员自己开发的模块
1、Python内部提供一个 sys 的模块,
① 其中的 sys.argv 用来捕获执行执行python脚本时传入的参数:
import sys strings = sys.argv
print(strings) # 所有参数 类型为列表
# ['start.py', 'hello', 'world']
print(strings[0]) # 脚本名本身
# start.py
print(strings[1]) # 第一个参数
# hello
print(strings[2]) # 第二个参数
# world
print(strings[-1]) # 倒数第一个参数
# world $ python test.py helo world 执行脚本
② sys.stdin信息输入:
读取的文件:
我越无所适从
越会事与愿违
在交错的时空
灵魂加速下坠
Here we are, here we are, here we are
lzl.txt
程序start.py:
import sys
li = []
file = sys.stdin
# <_io.TextIOWrapper name='<stdin>' mode='r' encoding='cp936'> file
for line in file:
li.append(line)
print(li)
print(line.strip()) # 这个很重要 strip去除末尾的换行符 本身print跟print直接回产生换行符
# 如果不进去去除末尾的换行符的话 会再多打印一行换行符
li =[]
执行程序: < 输入的文件 > 脚本打印的输出
python start.py < lzl.txt >test.txt
生成的文件test.txt:
['我越无所适从\n']
我越无所适从
['越会事与愿违\n']
越会事与愿违
['在交错的时空\n']
在交错的时空
['灵魂加�\udc80�下�\udca0\n']
灵魂加速下坠
['Here we are, here we are, here we are']
Here we are, here we are, here we are
test.txt
③ sys.stdout 重定向输出
import sys
sys.stdout.write("asdgf") # 当我们在 Python 中打印对象调用 print obj 时候,事实上是调用了 sys.stdout.write(obj+'\n')
# asdgf
④ sys.stdout.flush 强制刷新标准输出缓存,举网上泛传的一个例子,python3中楼主没有看出其中的效果,单本楼主之前学多进程时看到过效果,那个例子找不到了;就暂且认为下面的例子看出效果了吧
import time
import sys
for i in range(5):
print(i),
sys.stdout.flush()
time.sleep(1)
# 这样设计是为了打印一个数每秒五秒钟,但如果您运行它,因为它是现在(取决于您的默认系统缓冲),
# 你可能看不到任何输出 CodeGo.net,直到再一次全部,你会看到0 1 2 3 4打印到屏幕上。
# 这是输出被缓冲,除非你sys.stdout之后每print你不会看到从输出中取出sys.stdout.flush()网上看到的差别
2、os模块,os模块与系统进行交互
① os.dir、os.popen调用当前系统命令:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#-Author-Lian
import os #调用os模块
res = os.system("dir") #只执行命令,不保存结果
#������ C �еľ�û�б�ǩ�� #打印dir命令的结果
#�������� 50FA-4D57
#
#C:\Users\L\PycharmProjects\s14\Day2 ��Ŀ¼
#2016/08/04 10:53 <DIR> .
#2016/08/04 10:53 <DIR> ..
#2016/08/04 10:53 147 module.py
# 1 ���ļ� 147 �ֽ�
# 2 ��Ŀ¼ 35,291,541,504 �����ֽ�
print(res) #res只返会执行命令的成功与否,成功为0 反之为1
#0 res = os.popen("dir") #不打印输出,保存执行结果
print(res) #打印res内存地址信息
#<os._wrap_close object at 0x009BE570>
res = os.popen("dir").read() #通过read去读取内存地址记录的信息
print(res)
#驱动器 C 中的卷没有标签。
#卷的序列号是 50FA-4D57
#
#C:\Users\L\PycharmProjects\s14\Day2 的目录
#
#2016/08/04 11:00 <DIR> .
#2016/08/04 11:00 <DIR> ..
#2016/08/04 11:00 1,002 module.py
# 1 个文件 1,002 字节
# 2 个目录 35,291,017,216 可用字节 os.mkdir("new_dir") #在当前目录下创建新的目录new_dir
②、两者结合使用:
import os,sys
os.system(''.join(sys.argv[1:])) #把用户的输入的参数当作一条命令交给os.system来执行
3、platform识别当前运行的系统
① 根据不同的系统创建文件的绝对路径(linux系统路径为/,windows系统路径为\)
import os,sys
import platform if platform.system() == 'Windows': #windows系统
BASE_DIR = '\\'.join(os.path.abspath(os.path.dirname(__file__)).split('\\')[:-1]) # 取当前文件目录的父目录
#school_dbpaths = os.path.join(BASE_DIR,'school_db') # 如果只要当前目录则不用split
sys.path.insert(0, BASE_DIR) #加入到系统路径 else:
BASE_DIR = '/'.join(os.path.abspath(os.path.dirname(__file__)).split('/')[:-1])
school_dbpaths =os.path.join(BASE_DIR, 'school_db') print(school_dbpaths)
# C:\Users\L\PycharmProjects\s14\homework\Day_11\rpc_client\school_db
二、运算符:
1、算数运算:

2、比较运算:

3、赋值运算:

4、逻辑运算:

5、成员运算:

6、身份运算:

7、位运算:

#!/usr/bin/python a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0 c = a & b; # 12 = 0000 1100
print "Line 1 - Value of c is ", c c = a | b; # 61 = 0011 1101
print "Line 2 - Value of c is ", c c = a ^ b; # 49 = 0011 0001
print "Line 3 - Value of c is ", c c = ~a; # -61 = 1100 0011
print "Line 4 - Value of c is ", c c = a << 2; # 240 = 1111 0000
print "Line 5 - Value of c is ", c c = a >> 2; # 15 = 0000 1111
print "Line 6 - Value of c is ", c
8、运算符优先级:

点击查看更多内容:Python运算符
Python开发【第二章】:模块和运算符的更多相关文章
- Python第三章-输入输出和运算符
输入输出和运算符 一.输入和输出 1.1 输出 `print()`函数用来向终端输出数据(其实也可以向文件输出数据,后面再讲) 可以传递多个参数,则输出的时候 python 会把多个参数的值用空格隔开 ...
- java第二章 变量和运算符
Java 基础应用编程—— 变量和运算符 1.Java程序结构 数据类型:确定要存储在内存中的数据的类型. 变量:是存储数据的基本单元 2.变量的概念 变 ...
- 路飞学城-Python开发-第二章
''' 数据结构: menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, '汽车之家' ...
- Javascript权威指南——第二章词法结构,第三章类型、值和变量,第四章表达式和运算符,第五章语句
第二章 词法结构 一.HTML并不区分大小写(尽管XHTML区分大小写),而javascript区分大小写:在HTML中,这些标签和属性名可以使用大写也可以使用小写,而在javascript中必须小写 ...
- ASP.NET自定义控件组件开发 第二章 继承WebControl的自定义控件
原文:ASP.NET自定义控件组件开发 第二章 继承WebControl的自定义控件 第二章 继承于WebControl的自定义控件 到现在为止,我已经写了三篇关于自定义控件开发的文章,很感谢大家的支 ...
- Python开发【第二章】:Python模块和运算符
一.模块初识: Python有大量的模块,从而使得开发Python程序非常简洁.类库有包括三中: Python内部提供的模块 业内开源的模块 程序员自己开发的模块 1.Python内部提供一个 sys ...
- [Python笔记][第二章Python序列-复杂的数据结构]
2016/1/27学习内容 第二章 Python序列-复杂的数据结构 堆 import heapq #添加元素进堆 heapq.heappush(heap,n) #小根堆堆顶 heapq.heappo ...
- [Python笔记][第二章Python序列-tuple,dict,set]
2016/1/27学习内容 第二章 Python序列-tuple tuple创建的tips a_tuple=('a',),要这样创建,而不是a_tuple=('a'),后者是一个创建了一个字符 tup ...
- Android 系统移植与驱动开发--第二章搭建Android环境核心步骤及心得
第二章 搭建Android 开发环境 虽然在这一章中讲的是Android底层开发环境,但是相应伴随的还有Android NDK程序来测试Linux驱动,HAL程序库.底层开发不仅需要交叉编译环境,还要 ...
随机推荐
- pip install失败报错解决方案
cmd pip install 某些包时报错 pip install Consider using the `--user` option or check the permissions. 只需要p ...
- 关于PHP7的CURL上传文件
CULR 部分 $url = 'http://localhost/test/curlUploadFile/upload.php'; //处理上传的php文件,根据情况修改 $path='ftp.txt ...
- colock
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...
- Docs-.NET-C#-指南-语言参考-预处理器指令:#pragma checksum(C# 参考)
ylbtech-Docs-.NET-C#-指南-语言参考-预处理器指令:#pragma checksum(C# 参考) 1.返回顶部 1. #pragma checksum(C# 参考) 2015/0 ...
- k8s之磁盘挂载持久化
- 微信小程序与Html交互
微信小程序与H5页面交互 https://www.jianshu.com/p/22e951d83841
- 004-行为型-01-策略模式(Strategy)
一.概述 定义了一系列算法,并将每个算法封装起来,使他们可以相互替换,且算法的变化不会影响到使用算法的客户.需要设计一个接口,为一系列实现类提供统一的方法,多个实现类实现该接口,设计一个抽象类(可有可 ...
- ES6深入浅出-6 ES 6 模块-2.babel webpack parcel
https://babeljs.io/ 复制到命令行执行 提示一个警告.缺少package.json这个文件 npm init -t ls 然后看到了生成了package.json这个文件. 然后再去 ...
- matlab学习笔记2--matlab的帮助
一起来学matlab-matlab学习笔记2--matlab的帮助 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用>张德丰等著 感谢张 ...
- Ideal设置编码格式
file-------settings-------file Encodings