Python的平凡之路(2)
Python 的标准库(standard library) 是随着 Python 一起安装在你的电脑中的,是 Python 的一部分 (当然也有特殊情况。有些场合会因为系统安全性的要求,不使用全部的标准库,比如说Google App Engine)。利用已有的类(class)和函数(function)进行开发,可以省去你从头写所有程序的苦恼。
“这些标准库就是盖房子已经烧好的砖,要比你自己去烧砖来得便捷得多 ” ---解释的太到位!
Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等。取值范围 分32位和64位
字符串是以''或""括起来的任意文本,比如'abc',"xyz"等等。请注意,''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符。如果'本身也是一个字符,那就可以用""括起来
print(msg.encode(encoding="utf-8"))
print(msg.encode(encoding="utf-8").decode(encoding="utf-8"))
操作符 | 描述符 | 例子 |
---|---|---|
+ | 加法 - 对操作符的两侧增加值 | a + b = 30 |
- | 减法 - 减去从左侧操作数右侧操作数 | a - b = -10 |
* | 乘法 - 相乘的运算符两侧的值 | a * b = 200 |
/ | 除 - 由右侧操作数除以左侧操作数 | b / a = 2 |
% | 模 - 由右侧操作数和余返回除以左侧操作数 | b % a = 0 |
** | 指数- 执行对操作指数(幂)的计算 | a**b = 10 的幂 20 |
// | 地板除 - 操作数的除法,其中结果是将小数点后的位数被除去的商。 | 9//2 = 4 而 9.0//2.0 = 4.0 |
运算符 | 描述 | 示例 |
---|---|---|
== | 检查两个操作数的值是否相等,如果是,则条件变为真。 | (a == b) 为 true. |
!= | 检查两个操作数的值是否等相等,如果值不相等,则条件变为真。 | (a != b) 为 true. |
<> | 检查两个操作数的值是否等相等,如果值不相等,则条件变为真。 | (a <> b) 结果为true。这类似于!=运算符。 |
> | 检查左操作数的值是否大于右操作数的值,如果是,则条件成立。 | (a > b) 为 true. |
< | 检查左操作数的值是否小于右操作数的值,如果是,则条件成立。 | (a < b) 为true. |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。 | (a >= b) 不为 true. |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。 | (a <= b) 为 true. |
运算符 | 描述 | 示例 |
---|---|---|
= | 简单的赋值运算符,赋值从右侧操作数左侧操作数 | c = a + b将指定的值 a + b 到 c |
+= | 加法AND赋值操作符,它增加了右操作数左操作数和结果赋给左操作数 | c += a 相当于 c = c + a |
-= | 减AND赋值操作符,它减去右边的操作数从左边操作数,并将结果赋给左操作数 | c -= a 相当于 c = c - a |
*= | 乘法AND赋值操作符,它乘以右边的操作数与左操作数,并将结果赋给左操作数 | c *= a 相当于 c = c * a |
/= | 除法AND赋值操作符,它把左操作数与正确的操作数,并将结果赋给左操作数 | c /= a 相当于= c / a |
%= | 模量AND赋值操作符,它需要使用两个操作数的模量和分配结果左操作数 | c %= a is equivalent to c = c % a |
**= | 指数AND赋值运算符,执行指数(功率)计算操作符和赋值给左操作数 | c **= a 相当于 c = c ** a |
//= | 地板除,并分配一个值,执行地板除对操作和赋值给左操作数 | c //= a 相当于 c = c // a |
运算符 | 描述 | 示例 |
---|---|---|
and | 所谓逻辑与运算符。如果两个操作数都是真的,那么则条件成立。 | (a and b) 为 true. |
or | 所谓逻辑OR运算符。如果有两个操作数都是非零然后再条件变为真。 | (a or b) 为 true. |
not | 所谓逻辑非运算符。用于反转操作数的逻辑状态。如果一个条件为真,则逻辑非运算符将返回false。 | not(a and b) 为 false. |
操作符 | 描述 | 示例 |
---|---|---|
in | 计算结果为true,如果它在指定找到变量的顺序,否则false。 | x在y中,在这里产生一个1,如果x是序列y的成员。 |
not in | 计算结果为true,如果它不找到在指定的变量顺序,否则为false。 | x不在y中,这里产生结果不为1,如果x不是序列y的成员。 |
运算符 | 描述 | 例子 |
---|---|---|
is | 计算结果为true,如果操作符两侧的变量指向相同的对象,否则为false。 | x是y,这里结果是1,如果id(x)的值为id(y)。 |
is not | 计算结果为false,如果两侧的变量操作符指向相同的对象,否则为true。 | x不为y,这里结果不是1,当id(x)不等于id(y)。 |
运算符 | 描述 | 示例 |
---|---|---|
& | 二进制AND操作复制一位到一个结果数,如果存在两个操作数。 | (a & b) = 12 即 0000 1100 |
| | 二进制或复制操作了一个比特,如果它存在一个操作数中。 | (a | b) = 61 即 0011 1101 |
^ | 二进制异或运算符的副本,如果它被设置在一个操作数而不是两个比特。 | (a ^ b) = 49 即 0011 0001 |
~ | 二进制的补运算符是一元的,并有“翻转”位的效果。 | (~a ) = -61 即 1100 0011 以2的补码形式由于带符号二进制数。 |
<< | 二进位向左移位运算符。左操作数的值左移由右操作数指定的位数。 | a << 2 = 240 即 1111 0000 |
>> | 二进位向右移位运算符。左操作数的值是由右操作数指定的位数向右移动。 | a >> 2 = 15 即 0000 1111 |
运算符 | 描述 |
---|---|
** | 幂(提高到指数) |
~ + - | 补码,一元加号和减号(方法名的最后两个+@和 - @) |
* / % // | 乘,除,取模和地板除 |
+ - | 加法和减法 |
>> << | 左,右按位转移 |
& | 位'AND' |
^ | | 按位异'或`'和定期`或' |
<= < > >= | 比较运算符 |
<> == != | 等式运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 标识运算符 |
in not in | 成员运算符 |
not or and | 逻辑运算符 |
#Author is wspikh
# -*- coding: encoding -*-
print(names[0],names[2])
print(names[1:2]) #切片
print(names[2]) #切片
print(names[-1]) #切片
print(names[-2:]) #切片,取最后两个数,从左往右数
print(names[:3]) #切片,前边的0可以省略掉
names.append("leihaidong") #追加
names.insert(1,"chenronghua") #插入
names.insert(3,"xinzhiyu") #插入
print(names)
names[2]="xidi" #替换
print(names)
names.remove("chenronghua") #删除
print(names)
#del names[1] #删除
#names.pop[1] #删除
print(names.index('xidi')) #找出某人的位置
print(names[names.index('xidi')]) #通过位置,找到某人
print(names.count("chengronhua")) #统计出现了多少次
names.reverse() #翻转
print(names)
names.sort() #排序
print(names)
names2 = [1,2,3,4]
names.extend(names2) #扩展
#del names2
print(names)
n = ['a','b',['c','d'],'e']
#深COPY,第二份发生变化,第一份不发生变化
n2 = copy.deepcopy(n)
print(n)
print(n2)
n2[2][0] = 'wkk'
print(n)
print(n2)
print(n)
print(n3)
字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。创建字符串很简单,只要为变量分配一个值即可。
例子:
字典对象是可变的,它是一个容器类型,能存储任意个数的Python对象,其中也可包括其他容器类型。
'stu1101': "TengLan Wu",
'stu1102': "LongoingZe Luola",
'stu1103': "XiaoZe MaliYa"
}
print(info)
print(info["stu1101"])
info["stu1101"] = "武藤兰"
info["stu1104"] = "cangjingkong"
print(info)
del info["stu1101"] # info.pop(“stu1101”)
print(info)
print(info.get('stu1108')) #获取键值
print('stu1108' in info) # 判断键值是否存在。。。。
info.values()
info.keys()
info.setdefault("taiwan",{"www.baidu.com:[1,2]"})
#字典是无序的
#key必须是唯一的,天生去重
b = { 'stu1101': "Alex",1:3,2:5}
info.update(b)
print(info)
c = info.fromkeys([6,7,8],"test")
print(c)
for i in info:
print(i,info[i]) #字典循环,取出Key Value,效率高
for k,v in info.items():
print(k,v) #字典循环,取出Key Value ,效率低
# -*- coding: encoding -*-
list_2 = set([2,6,0,66,22,8,4])
print(list_1,type(list_1))
print(list_1,list_2)
#交集
#print(list_1.intersection(list_2))
print(list_1 & list_2)
#并集
#print(list_1.union(list_2))
print(list_1 | list_2 )
#差集
#print(list_1.difference(list_2))
#print(list_2.difference(list_1))
print(list_1 - list_2 )
#子集
list_3 = set([1,3,7])
print(list_1.issubset(list_2))
print(list_3.issubset(list_1))
#父集
print(list_1.issuperset(list_2))
#对称差集(把两个集合中相同的去掉)
print(list_1.symmetric_difference(list_2))
print("--------------")
#判断是否是交集,如果没有则为True
list_4 = ([5,6,8])
list_5 = ([8,3,9])
print(list_3.isdisjoint(list_4))
#添加集合
list_1.add(999)
list_1.update([666,777,888])
print(list_1)
list_1.remove(9) #项不存在,删除报错
#list_1.remove(222) #随意删除
list_1.pop() #指定删除项,区别于remove如果项不存在也不报错,
list_1.discard(777)
print(list_1) #包含不包含
print(999 in list_1)
print(555 in list_1)
#Author is wspikh
# -*- coding: encoding -*-
#data = open("yesterday",encoding="utf-8").read()
'''
f = open("yesterday",'r',encoding="utf-8",) #f就是文件句柄
data = f.read()
data2 = f.read()
print(data)
print("----Continue----",data2)
f = open("yesterday2",'w',encoding="utf-8",) #w写
f.write("我爱北京天安门,\n")
f.write("天安门上太阳升")
f = open("yesterday2",'a',encoding="utf-8",) #a追加
f.write("\n亲爱领袖毛委员\n")
f.write("带领我们向前进")
f.close()
'''
f = open("yesterday2",'r',encoding="utf-8",)
#for i in range(5):
# print(f.readline())
#f.close()'''
#print(f.readlines())
#f.close()
#for line in f.readlines():
# print(line.strip())
#f.close()
#for index,line in enumerate(f.readlines()):
# if index == 2:
# print('-------FG-------')
# continue
# print(line.strip())
#f.close()
#高逼格的循环,要理解!
count = 0
for line in f:
if count == 2:
print('---FG---')
count += 1
continue
print(line)
count += 1
f.close()
f2 = open("yesterday2",'r',encoding="utf-8",)
print(f2.tell()) #查询含义?
f2.seek(10) #指定到特定位置
#f2.truncate(40) #截断
print(f2.tell())
print(f2.flush()) #缓存写入
#Author is wspikh
# -*- coding: encoding -*-
f = open("yesterday","r",encoding="utf-8")
f_new = open("yesterday_bak",'w',encoding="utf-8")
#高逼格循环逐行读取文件
for line in f:
#字符串匹配
if "肆意的快乐等我享受" in line:
line = line.replace("肆意的快乐等我享受","肆意的快乐等wspkh享受")
#else: #可以省略掉
f_new.write(line)
f.close()
f_new.close()
#头脑风暴,变量替换!
'''
find_str = sys.argv[1]
replace_str = sys.argv[2]
for line in f:
#字符串匹配
if find_str in line:
line = line.replace(find_str,replace_str)
#else: #可以省略掉
f_new.write(line)
f.close()
f_new.close()
'''
#with语句可避免打开文件后忘记关闭
with open("yesterday2","r",encoding='utf-8') as k:
for line in k:
# -*- coding:gbk -*-
#适用于PY3
#打印系统默认编码
import sys
print(sys.getdefaultencoding())
s = "您好"
s_to_gbk = s.encode("gbk")
print(s_to_gbk,type(s_to_gbk))
print(s)
Python的平凡之路(2)的更多相关文章
- Python的平凡之路(8)
(本文是对平凡之路(7)的补充等) 一.动态导入模块 import importlib __import__('import_lib.metaclass') #这是解释器自己内部用的 #importl ...
- Python的平凡之路(20)
(提问复习为主) 一.Django请求的生命周期 武彦涛: 路由系统 -> 视图函数(获取模板+数据=>渲染) -> 字符串返回给用户 二.路由 ...
- Python的平凡之路(19)
一.Django请求生命周期 对于所有的web框架来说本质就是一个socket服务端,浏览器是socket客户端 ...
- Python的平凡之路(18)
一.JS 正则部分 test - 判断字符串是否符合规定的正则rep = /\d+/;rep.test("asdfoiklfasdf89asdfasdf")# truerep ...
- Python的平凡之路(16)
一.HTML+CSS补充 0.常用页面布局 <!DOCTYPE html> <html lang="en"><head> <meta ch ...
- Python的平凡之路(13)
一.Python的paramiko模块介绍 Python 的paramiko模块,该模块和SSH用于连接远程服务器并执行相关操作 SSH client 用于连接远程服务器并执行基本命令 基于用户名和密 ...
- Python的平凡之路(12)
一.数据库介绍 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据.我们也可以将数据存储在文件中,但 ...
- Python的平凡之路(11)
一. rabbitmq 1 进程Queue: 父进程与子进程进行交互,或者同属于同一父进程下多个子进程进行交互 2 队列通信: send1.py #!/usr/bin/env python#Au ...
- Python的平凡之路(10)
异步IO 数据库 队列 缓存 1.Gevent协程 定义:用户态的轻量级线程.协程拥有自己的寄存器上下文和栈.协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下 ...
- Python的平凡之路(9)
一.Paramiko模块练习 1. Paramiko模块介绍 Paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接 2 .SSHclie ...
随机推荐
- Stylish: http://bbs.csdn.net/topics/
[id^=google_ads_], [id^=bd_ad_], #cpro_u2392825, [id^=BAIDU_SSP_], .bbs_top_ad, .csdn-toolbar, #topi ...
- aaaaaaaaaaaaaaa
<?xml version="1.0" encoding="utf-8"?><document> <!-- 签名,由平台生成 -- ...
- 打包app命令行
$ cd myApp $ ionic platform add android $ ionic build android $ ionic emulate android
- c#链接数据库
using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Linq; usin ...
- /var/spool/postfix/maildrop 占用inode索引及磁盘空间解决办法
1.问题表现和检查 运行df -i / 查看inode使用是否满: 2.查看/var/spool/postfix/maildrop是否有非常多的小文件,ls直接卡死等情况 解决: 删除小文件: cd ...
- Hibernate的关联映射——单向1-1关联
Hibernate的关联映射--单向1-1关联 对于单向的1-1关联关系,需要在持久化类里增加代表关联实体的成员变量,并为该成员变量添加setter方法和getter方法.从持久化类的代码上看,单向1 ...
- 安装 phoneGap
npm config set registry http://registry.cnpmjs.org 使用最新版本PhoneGap ,决定使用官方提供的方法安装一次. 官方提供方法有些地方没有提到,因 ...
- 通过HWND获得CWnd指针
cwnd 又为计算机网络中拥塞窗口(congestion window)的简写.拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化.发送方让自己的发送窗口还可能小于拥塞窗口. CWnd是MFC窗口类 ...
- ios设备相关
设备方向 typedef NS_OPTIONS(NSUInteger, UIInterfaceOrientationMask) { UIInterfaceOrientationMaskPortrait ...
- [bzoj1452][JSOI2009]Count(树状数组)
1452: [JSOI2009]Count Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 2057 Solved: 1216[Submit][Stat ...