文章目录
Python简介
- 面向对象,面向函数的解释型语言
优点
- 简单易学,让你专注于解决问题
- 可移植性,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)
- 解释性。不同于c和c++这种编译语言,他不需要编译成0和1这种二进制代码。可以直接从源程序直接运行。
- 可扩展性,如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。
- 丰富的库!Python标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。记住,只要安装了Python,所有这些功能都是可用的。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。
- 规范的代码,Python采用强制缩进的方式使得代码具有极佳的可读性。
应用场景
- Web开发,Django框架
- 操作系统管理、服务器运维的自动化脚本。在很多操作系统里,Python是标准的系统组件。一般说来,Python编写的系统管理脚本在可读性、性能、代码重用度、扩展性几方面都优于普通的shell脚本。
- 科学计算机器学习,NumPy,SciPy,Matplotlib可以让Python程序员编写科学计算程序。
- 服务器软件(网络软件)——阿里云,Python对于各种网络协议的支持很完善,因此经常被用于编写服务器软件、网络爬虫。
Python下载和安装
安装anaconda pycharm
Python 基础语法
注释
# 单行注释
'''
多行注释
'''
变量及类型
注意:
- method和function的区别:在对象内部的叫method对象外边的叫function
- Python中区分大小写
#这叫函数
def fun():
print("fun")
#这个叫方法
class Person:
def eat(sel):
print("person.run")
fun()
Person.eat()
变量定义和使用
if __name__ == '__main__':
a = 10
b="adf"
print(b)
print(type(b))
- 布尔值:True False
可以使用and or not运算 - 空值:None
- 查看变量类型:type(变量名)
常见类型转换函数
函数 | 说明 |
---|---|
int(x [,base ]) | 将x转换为一个整数 |
long(x [,base ]) | 将x转换为一个长整数 |
float(x ) | 将x转换到一个浮点数 |
complex(real [,imag ]) | 创建一个复数 |
str(x ) | 将对象 x 转换为字符串 |
repr(x ) | 将对象 x 转换为表达式字符串 |
eval(str ) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
tuple(s ) | 将序列 s 转换为一个元组 |
list(s ) | 将序列 s 转换为一个列表 |
chr(x ) | 将一个整数转换为一个字符 |
unichr(x ) | 将一个整数转换为Unicode字符 |
ord(x ) | 将一个字符转换为它的整数值 |
hex(x ) | 将一个整数转换为一个十六进制字符串 |
oct(x ) | 将一个整数转换为一个八进制字符串 |
输入和格式化输出
输入
input()
输入的是str
如果需要int型的就需要转换
format格式化输出
格式化输入一半format函数用的比较多
if __name__ == '__main__':
s1 = "{}{}".format("aaa", "bbb")
s2 = "{0}{1}".format("bbb", "aaa")
s3 = "{1}{0}{1}".format("aaa", "bbb")
s4 = "网站地址:{url} 网站名称:{name}".format(url="www.kjzg.top", name="泽国科技")
# 通过字典设置参数
site = {
"name": "泽国科技", "url": "www.kjzg.top"}
s5 = "网站地址:{url} 网站名称:{name}".format(**site)
# 通过列表索引来设置参数
my_list = ['泽国科技', "www.kjzg.top"]
s6 = "网站名:{0[0]}, 地址 {0[1]}".format(my_list)
# 通过对象来传递
class value(object):
def __init__(self, value):
self.value = value
v = value(6)
print("value={0.value}".format(v))
数字 | 格式 | 输出 | 描述 |
---|---|---|---|
3.1415926 | {:.2f} | 3.14 | 保留小数点后两位 |
3.1415926 | {:+.2f} | +3.14 | 带符号保留小数点后两位 |
-1 | {:+.2f} | -1.00 | 带符号保留小数点后两位 |
2.71828 | {:.0f} | 3 | 不带小数 |
5 | {:0>2d} | 05 | 数字补零 (填充左边, 宽度为2) |
5 | {:x<4d} | 5xxx | 数字补x (填充右边, 宽度为4) |
10 | {:x<4d} | 10xx | 数字补x (填充右边, 宽度为4) |
1000000 | {:,} | 1,000,000 | 以逗号分隔的数字格式 |
0.25 | {:.2%} | 25.00% | 百分比格式 |
1000000000 | {:.2e} | 1.00e+09 | 指数记法 |
13 | {:>10d} | 13 | 右对齐 (默认, 宽度为10) |
13 | {:<10d} | 13 | 左对齐 (宽度为10) |
13 | {:^10d} | 13 | 中间对齐 (宽度为10) |
运算符
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 | 两个对象相加 a + b 输出结果 30 |
- | 减 | 得到负数或是一个数减去另一个数 a - b 输出结果 -10 |
* | 乘 | 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200 |
/ | 除 | x除以y b / a 输出结果 2 |
// | 取整除 | 返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0 |
% | 取余(取模) | 返回除法的余数 b % a 输出结果 0 |
** | 幂 | 返回x的y次幂 a**b 为10的20次方, 输出结果 100000000000000000000 |
逻辑运算符
and or not
比较运算符
逻辑判断和循环
- 逻辑判断:if elif else
- while循环:while 条件:
- for循环: for 临时变量 in 列表或者字符串等:
- break和continue
字符串
- 下标索引
if __name__ == '__main__':
s="abc"
print(s[1])
- 切片(分片)
切片的语法
- [起始:结束:步长]
- 选取时左闭右开
- 步长可以取负数
- 起始结束不放就是整个字符串
s="abcdefg"
print(s[1:6:2])
常见字符串操作
方法 | 简介 | 例子 |
---|---|---|
find == java Indexof方法 | 检测 str 是否包含在 mystr中,如果是返回开始的索引值,否则返回 | mystr.find(str, start=0, end=len(mystr)) |
index | 跟find()方法一样,只不过如果str不在 mystr中会报一个异常. | mystr.index(str, start=0, end=len(mystr)) |
count | 返回 str在start和end之间 在 mystr里面出现的次数 | mystr.count(str, start=0, end=len(mystr)) |
replace | 把 mystr 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次. | mystr.replace(str1, str2, mystr.count(str1)) |
split | 以 str 为分隔符切片 mystr,如果 maxsplit有指定值,则仅分隔 maxsplit 个子字符串 | mystr.split(str=" ", 2) |
capitalize | 把字符串的第一个字符大写 | mystr.capitalize() |
title | 把字符串的每个单词首字母大写 | |
startswith | 检查字符串是否是以 obj 开头, 是则返回 True,否则返回 False | mystr.startswith(obj) |
endswith | 检查字符串是否以obj结束,如果是返回True,否则返回 False. | mystr.endswith(obj) |
lower | 转换 mystr 中所有大写字符为小写 | mystr.lower() |
upper | 转换 mystr 中的小写字母为大写 | mystr.upper() |
ljust | 返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串 | mystr.ljust(width) |
rjust | 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串 | mystr.rjust(width) |
center | 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串 | mystr.center(width) |
lstrip | 删除 mystr 左边的空白字符 | mystr.lstrip() |
rstrip | 删除 mystr 字符串末尾的空白字符 | mystr.rstrip() |
strip —java trim | 删除mystr字符串两端的空白字符 | |
rfind | 类似于 find()函数,不过是从右边开始查找. | mystr.rfind(str, start=0,end=len(mystr) ) |
rindex | 类似于 index(),不过是从右边开始. | mystr.rindex( str, start=0,end=len(mystr)) |
partition | 把mystr以str分割成三部分,str前,str和str后 | mystr.partition(str) |
rpartition | 类似于 partition()函数,不过是从右边开始. | mystr.rpartition(str) |
splitlines | 按照换行符分隔,返回一个包含各行作为元素的列表 | mystr.splitlines() |
isalpha | 如果 mystr 所有字符都是字母 则返回 True,否则返回 False | mystr.is |