python简述
1,跨平台
2,应用范围广(操作系统,3d动画,web,云计算,企业应用)
python基本知识
内置函数(bif:built in functions):比如print、int,input。(可以理解为官方定义的一种方法);
dir(_builtins_)
help(int)
流程图的使用:可以理清自己程序的逻辑性,科学合理的解决程序可能出现问题;
python是一种脚本语言,效率是很重要的。
pycharm安装
很好用的python开发工具
软件下载:www.jetbrains.com
专业版功能强大,收费的(破解自行百度);社区版免费功能少
ctrl+/快速注释
变量
- 变量名就像我们现实社会的名字,把一个值赋值给一个名字时,ta会存储在内存中,称之为变量(variable),在大多数语言中,都把这种行为称为“给变量赋值”或“把值存储变量中”。
- 不过python与大多数其他计算机语言的做法稍有不同,ta并不是把值存储在变量中,而更像是把名字贴在值的上边。
- 所以有些python程序员会说“python”没有“变量”,只有“名字”
- 变量是可以多次赋值的【在程序执行的过程中,值可以改变的量】
tmper=1
注意点:
- 在使用变量之前,需要对其先赋值。
- 变量名可以包括字母、下划线,但变量名不能以数字开头。
- 字母可以是大写或小写,但大小写是不同的。也就是说fishc和fishc对于python来说是完全不同的两个名字
- 等号(=)是赋值的意思,左边是名字,右边是值,不可以写反
- 变量命名是可以任意取合法的名字,但尽量贴合变量意义(驼峰命名法,下划线命名法)
字符串
- 到目前为止,我们所认知的字符串就是引号内的一切东西,我们也把字符串叫做文本,文本和数字截然不同
- 创建字符串要在字符两边加引号,可以是单引号也可以是双引号(但必须成对出现)
原始字符串
str=r'C:\now'
长字符串
- 用“““ xxxxxxxxxxxxxxxxxxxxxxxx “”" 用三对引号
注释
# 单行注释
""" 多行注释 ”“”
python基本数据类型
print(type(a)) #查看a的数据类型(使用type())
# 高级类型
a=() #元组类型
a=[] #列表类型
a={} #字典类型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ih0dQIQD-1627829054950)(C:\Users\何十三\Desktop\新建文件夹\基本数据类型.png)]
运算符
运算
算数运算符
算数运算符是运算符的一种
是完成基本的算数运算使用的符号,用来处理四则yunsuan
运算符 | 描述 | 实例 |
---|
+ | 加 | 10+20=30 | - | 减 | 10-20=-10 | * | 乘 | 10*20=200 | / | 除 | 10、20=0.5 | // | 取整数 | 返回除法的整数部分(商)9//2输出结果4 | % | 取余数 | 返回除法的余数9%2=1 | ** | 幂 | 又称次方、乘方。2**3=8 |
比较运算符
==
!=
>
<
>=
<=
逻辑运算符
and
or
not
()-> not->and->or
print(a+b>c and c<d)
赋值运算符
赋值运算符 | 作用描述 | 结果描述 |
---|
= | 赋值运算符 | 将=号右边的值赋值给左边的变量 | += | 加法赋值运算符 | c+=a等效于c=c+a | -= | 减法赋值运算符 | c-=a等效于c=c-a | *= | 乘法赋值运算符 | c*=a等效于c=ca | /= | 除法赋值运算符 | c/=a等效于c=c/a | %= | 取模赋值运算符(取余数) | c%=a等效于c=c%a | **= | 幂赋值运算符 | c**=a等效于c=c^a | //= | 取整赋值运算符 | c//=a等效于c=c//a |
基本语法
第一个程序hello python
print('hello python')
print('人生苦读,我用python')
print('点个关注哈')
python输出与输入
输出
name='giao'
classpro='清华附中三班'
print('我的名字是%s: 来自[%s]'%(name,classpro))
print('我的名字是:{} 来自:{}'.format(name,classpro))
常用的格式化符号,其中最常用的%s,%d,%f
格式符号 | 转换 |
---|
%c | 字符 | %s | 通过str()字符串转换来格式化 | %i | 有符号十进制整数 | %d | 有符号十进制整数 | %u | 无符号十进制整数 | %o | 八进制整数 | %x | 十六进制整数(小写字母) | %e | 索引符号(小写’e’) | %E | 索引符号(大写’E’) | %f | 浮点实数 | %g | %f和%e的简写 | %G | %f和%E的简写 |
输入
python中提供了input方法来获取键盘输入
a= input('请输入你的名字:')
注意:input接收的键盘输入结果都是str类型的,如果接收数字类型需要将str转成int
a= int(input('请输入你的名字:'))
流程控制语句
流程:就是计算机执行代码的顺序
流程控制:对计算机代码执行的顺序进行有效的管理,只有流程控制才能实现在开发当中的业务逻辑
流程控制的分类:
-
顺序流程:就是代码一种自上而下的执行结构,也是python默认的流程 -
选择流程/分支流程:根据在某一步的判断,有选择的去执行相应的逻辑的一种结果 -
循环流程:在一定的条件下,一直重复的去执行某段代码的逻辑
选择流程
if 条件表达式
一条条的python代码
一条条的python代码
一条条的python代码
----------------------------------------------------
if 条件表达式:
一条条的python代码
一条条的python代码
一条条的python代码
elif 条件表达式:
一条条的python代码
一条条的python代码
else:
一条条的python代码
一条条的python代码
---------------------------------------------------
循环流程
while 条件表达式:
一条条的python代码
love = "yes"
while love=="yes"
love = input("今天你还爱我吗?")
i = 1
sum = 0
while i <= 100000:
sum += i
i += 1
-------------------分割线--------------------------
while条件表达式:
代码指令
else:
代码指令
1.有初始值
2.有条件表达式
3.变量【循环体内计数变量】的自增自减,否则会造成死循环
--------------------------------------------------
i = 1
while i<=9:
j = 1
while j<=i:
print(j,"*",i,"=",j*i,end=" ")
print()
i+= 1
--------------------------------------------------
--------------------------------------------------
for 变量 in 可迭代对象 :
statements
for each in 'giao':
print(each)
i = 0
while i< len('giao'):
print('giao'[i])
i+=1
for i in range(11):
print(i)
for i in range(5,10):
print(i)
for i in range(5,10,2):
print(i)
5
7
9
for i in range(10,5,-2):
print(i)
10
8
6
sum = 0
for i in range(1000001):
sum += i
print(sum)
500000500000
for n in range(2,10):
for x in range(2,n):
if n % x == 0:
print(n,"=",x,"*",n//x)
break
else:
print:
print(n,"是一个是素数")
列表
创建列表
[1,2,3,4,5]
序列
giao=[1,2,3,4,5,"天王盖地虎"]
print(giao)
for each in giao:
print(each)
giao[0]
giao[1]
giao[2]
giao[length-1]
giao[-1]
giao[0:3]
1,2,3
giao[3:6]
4,5,"天王盖地虎"
giao[:3]
1,2,3
giao[3:]
4,5,"天王盖地虎"
giao[:]
[1,2,3,4,5,"天王盖地虎"]
giao[0:6:2]
[1,3,5]
giao[::2]
[1,3,5]
giao[::-2]
["天王盖地虎",4,2]
giao[::-1]
["天王盖地虎",5,4,3,2,1]
列表诸多方法
增
person = ["张三","王五","赵四"]
person.append("秋怕累")
--------------------------------------------------
person.extend(["giao","钱九"])
a = [1,2,3,4,5]
s[len(s):] = [7,8,9]
------------------------------------------------
a = [1,2,3,4,5]
a.insert(1,2)
a.insert(0,0)
a.insert(len(a),6)
删
--------------------------------------------------
a = [1,2,3,4,5]
a.remove(1)
--------------------------------------------------
a.pop(2)
--------------------------------------------------
a.clear()
改
hero[4] = "giao"
hero[3:]= ["giao","lbw"]
hero.sort()
hero.reverse()
查
hero.count(3)
hero.index()
hero.index(3,1,7)
heros[heros.index("giao")] = "pdd"
复制(浅复制)
import copy
hero = copy.copy(heros)
hero_1 = heros[:]
深复制(效率低节省内存空间)
import copy
hero = copy.deepcopy(heros)
列表加法和乘法
a = [1,2,3]
b = [4,5,6]
a + b
[1,2,3,4,5,6]
a * 3
[1,2,3,1,2,3,1,2,3]
嵌套列表
二维列表
m = [[1,2,3],[4,5,6],[7,8,9]]
m = [[1,2,3],
[4,5,6],
[7,8,9]]
for i in m:
for each in i:
print(each,end=" ")
print()
m[1][1]
m[2][2]
A = [0] *3
for i in range(3):
A[i] = [0] * 3
-------------------------------------------------
b = [[0] * 3] *3
列表推导式
基本语法
[表达式(循环体)for target in iterable]
[i for i in range(10)]
处理字符串
y = [c * 2 for c in "giao
print(y)
可添加if
[expression for target in iterable if condition]
[i for i in range(10) if i % 2 ==0]
嵌套列表推导式
元组
只支持查没有增删改
w = (a,b,c)
w = (a,)
字典
NASDAQ_code = {
'BIDU':'Baidu',
'SINA':'Sina',
'YOKU':'YouKu'
}
1、健-值成对出现;
2、健不能重复;
3、健不可更改,值可修改;
4、健来索引值。
del dic['c']
dic.update({健:值})
dic = {i:i**2 for i in range(10)}
import re
lyric = 'The night begin to shine, the night begin to shine'
lyric = lyric.lower()
lyric = re.sub('[,.?:;"\']','',lyric)
words = lyric.split()
word = set(words)
dic = {i:words.count(i) for i in word}
文件管理
打开文件
在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件:
示例如下:
f = open('walden.txt','r')
txt = f.read(50)
f.close()
print(txt)
import os
print(os.getcwd())
f = open('路径/walden.txt','r')
清洗数据例子
import re
f = open('walden.txt','r')
txt = f.read()
lyric = txt.lower()
lyric = re.sub('[,.?:;"\']','',lyric)
words = lyric.split()
=================方案一(效率低)==================
word = set(words)
dic = {i:words.count(i) for i in word}
print(dic)
==================方案二=========================
dic = {}
print(dic.keys())
print(dic.values())
print(dic.items())
for word in words:
if word in dic.keys():
dic[word] += 1
else:
dic[word] = 1
res = sorted(dic.items(),key=lambda x:x[1],reverse=True)
print(dic)
函数
自定义函数
def count(x,z=0):
for i in x:
if i%2==1:
z = z+1
return z
res = count([1,2,3,4,5])
print(res)
==================第二种方式(适用于简单的函数定义)==
y = lambda x:x[1]
res = y(['the',7346])
面向对象
类and对象
-
类:抽象的,是对象的集合 -
对象:具体的,是类的组成部分
- 比如:动物是类,可爱的猪猪是对象;电竞选手是类,pdd是对象
如何构建对象
class Human:
def __init__(self,sex=None,age=None):
print('hello')
self.sex = sex
self.age = age
def sqrt(self,x):
print('1:hello')
return x**2
zhangfei = Human()
res = zahngfei.sqrt(10)
res = zhangfei.sex
res = zhangfei.age
print(res)
在其他类中调用类
模块
from 想调用的类 import 想调用的方法
form 想调用的类 import 想调用的方法 as 别名
import 想调用的类
import sys
res = sys.path
print(res)
第三方库的安装
- 安装:pip3 install packagename(numpy,pandas)
- 导入:
- import packagename
- import packagename import function_name
- packagename.function_name
- new_name.function_name
- function_name
import sys
res = sys.path
print(res)
#对象实例化 res = zahngfei.sqrt(10) #10表示传值 .sqrt表示调用方法 res = zhangfei.sex res = zhangfei.age print(res)
## 在其他类中调用类
模块
- 模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py
- #!/usr/bin/python3
#Filename:test.py
#导入模块
import support
#现在可以调用模块里包含的函数了
support.print_func("Runoob")
- 标准模块:math,random
```python
from 想调用的类 import 想调用的方法 #调用类的方法
form 想调用的类 import 想调用的方法 as 别名 #as表示起别名
import 想调用的类 #调用脚本 使用这样格式需要.方法
#注意:import是有优先级的,查看用以下代码
import sys
res = sys.path
print(res)
第三方库的安装
- 安装:pip3 install packagename(numpy,pandas)
- 导入:
- import packagename
- import packagename import function_name
- packagename.function_name
- new_name.function_name
- function_name
import sys
res = sys.path
print(res)
|