python(一)
1 python安装
先安装python,之后安装pycharm 创建工程时需要关联解释器路径;
2 python运行
先编译后解释
.py--.pyc文件---解析----结果
.pyc的目的是减少重复编译的过程,提高速度,同时可以保护源代码
3 手动编译
单个编译:import py_ccompile py_compile.compile(r "filepath") 或者 python -m py_compile filepath
批量编译:import compileall ccomplileall.compile_dir(r "filepath") 或者 python -m compileall filepath
4 编程规范
缩进对齐 注意不同编辑器的制表位不同,推荐使用同一编辑器,防止空格与制表符的混用导致缩进失效。
不同\r\n ----\n
跨行:\ 三重引号 :注释跨行使用,定义字符串,按照原有字符串格式输出
注释: # 三重引号
5 编码格式
ASCII 1个字符
GB2312 2个字节 处理中文 国标编码
Unicode 统一编码标准 UTF-16/32
UTF-8 可变长编码 将unicode字符根据不同的数字大小编码成1-6个字节 英文字母被编码成一个字节,汉字通常是3个字节;
6 乱码的本质:编码格式不统一。
解决:
# coding=utf-8 建议中间不要有空格
# -*-coding: utf-8 -*
弱类型语言:变量使用之前不需要定义,不需要指定类型,因为其内部存储均为引用关系,都是存着一块地址,指向一块内存区域,因此不需要区分;
可变数据类型:
不可变数据类型:数字/字符串/布尔值/元组/None
数字:
整数 4字节
长整数 不限长度
浮点数 双精度
自动类型转换
强制类型转换 chr(90) ord('A')
转义 \ 还原特殊含义字符的原始含义 \n 换行
r“”前面加r,代表原始子符串,路径 正则表达式
print("Bob said \ni'm ok")
str = """BOb said
i'm ok
"""
print(str) Bob said
i'm ok
BOb said
i'm ok
None
None表示一个空对象,没有任何的方法和属性;
None有自己的数据类型NoneType
不代表0 False “ ”
None和任何其他的数据类型比较永远返回False
如果函数无retrun,则默认返回None
s = None
print(s == "")
print(s == 0)
print(s == False) False
False
False
运算符:
/ 除数不能为0
// 整除
** 幂
% 取余 判断奇偶数 a%2==0 偶数 a%2==1 奇数
比较运算符:返回布尔值
== 等于 比较对象的值是否相等
is 两个引用是否相同
!=或< >
赋值运算符:
= += -= /= *= %= **= //=
python中将两个变量的值进行交换:不需要借助中间变量你,连续位异或2次,以前的另一种实现,在python中直接赋值就可以实现。
a = 1
b = 2
c = a,b = b,a 实际上是定义了元组。
print(a)
print(b)
print(type(c)) 2
1
<class 'tuple'> 实现原理:通过元组实现,元组的括号可以省略
函数return回一个元组,误以为是两个值
def sum():
a = 0
b = 1
return a,b # return (a,b)
逻辑运算符: and or not
1 短路运算 2 if条件为False的值 3 函数没有返回值时默认为None
if 条件为False : 0 False None []
def a():
print("A")
return 0
def b():
print('B') #无返回值时默认为None
def c():
print("C")
return []
def d():
print("D")
return False
if a() or b() or c() or d():
print("OK") A
B
C
D
def a():
print("A")
return 0
def b():
print('B')
def c():
print("C")
return []
def d():
print("D")
return False
if a() and b() and c() and d(): // 连续and,短路操作
print("OK") A
成员运算符: in /not in
in 如果在指定的序列中找到一个变量的值,则返回ture,否则返回false
not in 如果在指定的序列中找不到变量的值,则返回ture,否则返回false
应用:查看字符串中是否包含某个值
print("e" in "hello")
print("w" in "hello")
print("w" not in "hello") True
False
True
a = 1
b = (1,2,3)
print(a in b)
print(a not in b) Ture
False
身份运算符 is /is not
三目运算符 为真时的结果 if 判定条件 else 为假时的结果
print(1 if 5>3 else 0)
1
++ -- python中不支持
字符串--赋值
单引号/双引号混用,可以避免使用转义字符。
str() 将数值转换为字符串
repr() 默认在字符串前面加r
z = "aa\nc"
print(str(z))
print(repr(z)) #相当与在字符串前面加r aa
c
'aa\nc'
a = [1,"a","c",10,23]
flag = 0
for n in a:
try:
int(n)
except:
flag+=1
print(flag) #统计自动化用例是失败数 2
字符串格式化:
%% 本身包含%
%s 字符串
%d 整数
%f 浮点型
%x 16进制
%r 原始字符串
i = 0
b = "aaaaa"
print(i + b)
print(str(i)+b) print(i + b)
TypeError: unsupported operand type(s) for +: 'int' and 'str' 0aaaaa
name = "赵玉"
age = 18
print("可爱的%s,%d岁了" % (name,age))
print('''可爱的 %s
%d岁了
''' % (name,age)) 可爱的赵玉,18岁了
可爱的 赵玉
18岁了
name = "小明"
mouth = 10
huafei = 50
yue = 29.99
info = "亲爱的%s,你的%d月份的话费是%.2f,余额是%.2f" % \
(name,
mouth,
huafei,
yue)
print(info) 亲爱的小明,你的10月份的话费是50.00,余额是29.99
info = "亲爱的{name},你的{mouth}月份的话费是{huafei},余额是{yue}"
info = info.format(name="小明",mouth=10,huafei=50.0,yue=29.99)
print(info) 亲爱的小明,你的10月份的话费是50.0,余额是29.99
info = "亲爱的{0},你的{1}月份的话费是{2},余额是{3}"
info = info.format("小明",10,50.0,29.99)
print(info)
亲爱的小明,你的10月份的话费是50.0,余额是29.99
protocol = "http"
domain = "192.168.2.111"
url = "huice/event/api/add"
data = "tittle=python大会&time=2018-01-06" str = "{protocol}://{domain}/{url}?{data}"
str = str.format(protocol=protocol,
domain=domain,
url=url,
data=data)
print(str) http://192.168.2.111/huice/event/api/add?tittle=python大会&time=2018-01-06
拼接一个动态函数
method = '''def test_{case} (self):
"{desc}"
execute_case({data})
'''
case = "case01"
desc = "测试用例一"
data = "id=1" method = method.format(case=case,
desc=desc,
data=data)
print(method) def test_case01 (self):
"测试用例一"
execute_case(id=1)
python(一)的更多相关文章
- Python中的多进程与多线程(一)
一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...
- Python高手之路【六】python基础之字符串格式化
Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...
- Python 小而美的函数
python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况 any any(iterable) ...
- JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议
软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...
- 可爱的豆子——使用Beans思想让Python代码更易维护
title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...
- 使用Python保存屏幕截图(不使用PIL)
起因 在极客学院讲授<使用Python编写远程控制程序>的课程中,涉及到查看被控制电脑屏幕截图的功能. 如果使用PIL,这个需求只需要三行代码: from PIL import Image ...
- Python编码记录
字节流和字符串 当使用Python定义一个字符串时,实际会存储一个字节串: "abc"--[97][98][99] python2.x默认会把所有的字符串当做ASCII码来对待,但 ...
- Apache执行Python脚本
由于经常需要到服务器上执行些命令,有些命令懒得敲,就准备写点脚本直接浏览器调用就好了,比如这样: 因为线上有现成的Apache,就直接放它里面了,当然访问安全要设置,我似乎别的随笔里写了安全问题,这里 ...
- python开发编译器
引言 最近刚刚用python写完了一个解析protobuf文件的简单编译器,深感ply实现词法分析和语法分析的简洁方便.乘着余热未过,头脑清醒,记下一点总结和心得,方便各位pythoner参考使用. ...
- 关于解决python线上问题的几种有效技术
工作后好久没上博客园了,虽然不是很忙,但也没学生时代闲了.今天上博客园,发现好多的文章都是年终总结,想想是不是自己也应该总结下,不过现在还没想好,等想好了再写吧.今天写写自己在工作后用到的技术干货,争 ...
随机推荐
- JS编写简易计算器
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/html"> <head lang=" ...
- deleteMany is not a function
问题: 同事使用了deleteMany方法用于删除数据,但是全公司只有我一个人报错deleteMany is not a function. 很自然,输出了model.deleteMany,得到的结果 ...
- string行读入&&文件输入
普通读入的时候会以空格作为分隔符 直接用cin>>s读入,此时可以直接处理文件尾的情况 text代码: #include <iostream>#include <cstd ...
- 2018年第九届蓝桥杯国赛试题(JavaA组)
1.结果填空 (满分13分)2.结果填空 (满分39分)3.代码填空 (满分27分)4.程序设计(满分45分)5.程序设计(满分71分)6.程序设计(满分105分) 1.标题:三角形面积 已知三角形三 ...
- ACM-ICPC2018北京网络赛 Tomb Raider(暴力)
题目2 : Tomb Raider 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 Lara Croft, the fiercely independent daughte ...
- Django 之 requirement.txt 依赖文件生成
通过依赖文件,别人在使用我们的项目时,不需要再一个个去安装所需模块,只需安装依赖文件即可. 1. 导出整个虚拟环境依赖 # 在项目根目录中,打开终端执行以下命令 # 生成 requirements.t ...
- JAVA企业级开发-sql入门(07)
一. 数据库 什么是数据库? 就是一个文件系统,通过标准SQL语言操作文件系统中数据 ---- 用来存放软件系统的数据 我们今天学习的数据库是mysql.关系型数据库. 什么是关系化数据库 ? 保存关 ...
- CC08:翻转子串
题目 假定我们都知道非常高效的算法来检查一个单词是否为其他字符串的子串.请将这个算法编写成一个函数,给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成,要求只能调用一次检查子串的函数. 给 ...
- MySQL创建用户+授权+备份
======权限管理====== 我们知道我们的最高权限管理者是root用户,它拥有着最高的权限操作.包括select.update.delete.update.grant等操作. 那么一般情况在公司 ...
- [HNOI2017]抛硬币
Description 小A和小B是一对好朋友,他们经常一起愉快的玩耍.最近小B沉迷于××师手游,天天刷本,根本无心搞学习.但是已经入坑了几个月,却一次都没有抽到SSR,让他非常怀疑人生.勤勉的小A为 ...