python入门基础,全网最详细教程

Python学习22:M与N的数学运算(Python123) 5种数学运算分别是:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬。示例1:10, 2‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬。 阅读详情

1 变量和简单数据类型

变量命名格式:变量名 = “赋值”

1.1 变量使用规范

使用变量时,需要遵守一些规则。违反这些规则将引发错误。

~变量名只能包含数字、字母、下划线。变量名不能以数字开头以及不能包含空格。

~变量名不能将Python保留字和函数名作为变量名。如print等

如下是python3的33个保留字列表:

~变量名要简单又具有描述性。如name比n好,user_name比u_n好。

~慎用大写字母I和O,避免看错成数字1和0。

1.2 字符串

字符串就是一系列字符。在Python中,用引号括起的都是字符串,其中引号包括单引号和双引号。这种灵活性能够在字符串中包含引号和撇号,如:

>>> str = "I'm David"
>>> str1 = 'I told my friend,"i love Python"'

常用字符串操作方法

以首字母大写的方式显示每个单词:

>>> name = "hello python world"
>>> print(name.title())
Hello Python World

 将字符串改为全部大写或全部小写:

>>> str1 = "I love python"
>>> print(str1.upper())  #将字符串改为全部大写
I LOVE PYTHON
>>> print(str1.lower())   #将字符串改为全部小写
i love python

 字符串合拼(拼接)

Python使用加号(+)来合拼字符串,如:

>>> first_name = "Guido"
>>> last_name = "van Rossum"
>>> full_name = first_name + " " + last_name
>>> print(full_name)
Guido van Rossum

使用制表符\t或换行符\n添加空白:

>>> print("Languages:\n\tPython\n\tC++\n\tPHP")
Languages:
    Python
    C++
    PHP

 删除字符串的空格:

>>> name = " p y t h o n "
>>> print(name.rstrip()) #删除字符串右端空格
 p y t h o n
>>> print(name.lstrip())  #删除字符串左端空格
p y t h o n 
>>> print(name.strip())   #删除字符串两端空格
p y t h o n
>>> print(name.replace(' ',''))  #删除字符串全部空格包括制表符和换行符
python

 


很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:721195303


字符串的序号

 字符串是字符的序列,可以按照单个字符或字符片段进行索引。

>>> name = "Hello World"
>>> print(name[0])
H
>>> print(name[0:-1])
Hello Worl
>>> print(name[-1])
d
>>> print(name[::])
Hello World
>>> print(name[0:11])
Hello World

 找到字符串中最低字符索引号:S.find(sub [,start [,end]]) -> int  

失败时返回-1

>>> name = "hello world"
>>> print(name.find('d'))
10

返回某些字符出现的次数:S.count(sub[, start[, end]]) -> int

>>> name = "hello world"
>>> print(name.count('l'))
3

 把字符串由分隔符返回一个列表:S.split([sep [,maxsplit]]) -> list of strings,如果给定maxsplit,则最多为maxsplit

>>> name = "hello world"
>>> print(name.split(' '))
['hello', 'world']
>>> print(name.split(' ',0))
['hello world']

 字符串格式化输出(format和%用法)

%方法格式代码

>>> "{}:计算机{}的CPU占用率为{}%".format('2019-03-25','python',10)  #S.format(*args, **kwargs) -> string
'2019-03-25:计算机python的CPU占用率为10%'
>>> "%s:计算机%s的CPU占用率为%d%%" % ('2019-03-25','python',10)   #%用法
'2019-03-25:计算机python的CPU占用率为10%

小结:可以用help函数查看字符串的相关操作,比如help(str.find)

2 组合数据类型

2.1 集合类型

集合的定义及操作

~集合用大括号{}表示,元素间用逗号分隔;

~建立集合类型用{}或set();

~建立空集合类型,必须用set();

~集合元素之间无序;

~集合中每个元素唯一,不存在相同元素

>>> A = {"python",'666',("wenwei-blog",666)}
{'python', '666', ('wenwei-blog', 666)}
>>> B = set("pypy")
{'y', 'p'}
>>> C = {"python",123,"python",123}
{'python', 123}

集合操作符

6个操作符

4个增强操作符

 集合操作方法

集合应用场景

包含关系比较;数据去重。

2.1 序列类型定义

~序列是具有先后关系的一组元素

~序列是一个基类类型(基本数据类型)

~序列类型分为字符串、列表、元组类型

2.2 序列类型之列表

列表由一系列按特定顺序排列的元素组成,用方括号[]来表示列表。

列表的增删改查相关操作

函数或方法

描述

实例

 L[i]=x

 替换列表L第i数据项为x

>>> L = ['Python','PHP','JavaScript','C++']

>>> L[1] = 'Java'

>>> L

['Python', 'Java', 'JavaScript', 'C++']

 L[i:j]=L1

 用列表L1替换列表L中第i到j项数据

 >>> L
['Python', 'Java', 'JavaScript', 'C++']
>>> L1 = ['C','Go']
>>> L[0:2]=L1
>>> L
['C', 'Go', 'JavaScript', 'C++']

 del L[i:j:k]

删除列表L第i到第j项以k为步数的数据

 >>> L
['C', 'Go', 'JavaScript', 'C++', 'Java', 'C#', 'Ruby', 'Lua']
>>> del L[1:6:2]
>>> L
['C', 'JavaScript', 'Java', 'Ruby', 'Lua']

 L+=L1或L.extend(L1)

 将列表L1元素增加到列表L中

 >>> L;L1

['C', 'JavaScript', 'Java', 'Ruby', 'Lua']
['C', 'Go']
>>> L+=L1
>>> L;L1
['C', 'JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go']
['C', 'Go']

 L*=n

 将L列表的元素重复n次

 >>> L1*=2
>>> L1
['C', 'Go', 'C', 'Go']

 L.append(x)

 在L列表最好添加元素x

 >>> L
['C', 'JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go']
>>> L.append('Python')
>>> L
['C', 'JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']

 L.clear()

删除列表L的所有元素

 >>> L
['C', 'JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']
>>> L.clear()
>>> L
[]

 L1 = L.copy()

 复制L列表生成新的L1列表

 >>> L
['C', 'JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']
>>> L1 = L.copy()
>>> L1
['C', 'JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']

L.insert(i,x)

 在列表L的第i位置增加元素x

 >>> L
['C', 'JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']
>>> L.insert(2,'PHP');L
['C', 'JavaScript', 'PHP', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']

L.pop(i)

将列表L中的第i项元素删除

>>> L;L.pop(2);
['C', 'JavaScript', 'PHP', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']
'PHP'
>>> L
['C', 'JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']

L.remove(x)

 将列表的第一个x元素删除

 >>> L
['C', 'JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']
>>> L.remove('C')
>>> L
['JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']
>>>

L.reverse(x)

将列表L中的元素反转

>>> L;L.reverse();L
['JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']
['Python', 'Go', 'C', 'Lua', 'Ruby', 'Java', 'JavaScript']

L.sort()

将列表L的元素按首字母顺序排序

>>> L.sort()
>>> L
['C', 'Go', 'Java', 'JavaScript', 'Lua', 'Python', 'Ruby']

L.index(x)

获取列表L的x元素的索引号

>>> L.index('Python')
5
>>> L
['C', 'Go', 'Java', 'JavaScript', 'Lua', 'Python', 'Ruby']

对列表数字执行简单统计计算

>>> digits = [1,23,434,55,44,67]
>>> min(digits)
1
>>> max(digits)
434
>>> sum(digits)
624

 列表相关练习

练习1:创建一个列表,其中包含数字1-100并打印出来然后计算列表数字的总值。

>>> digits = [value for value in range(1,101)];sum(digits)
5050

练习2:求1-20的奇数

>>> for i in range(1,21,2):
    print(i)
    
1
3
5
7
9
11
13
15
17
19

 练习3: 输出3-30以内能被3整除的数字

>>> lists = [n for n in range(3,31)]
>>> lists
[3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
>>> for i in lists:
    if i % 3 == 0:
        print(i)

        
3
6
9
12
15
18
21
24
27
30

2.3 序列类型之元组

元组其实跟列表差不多,也是存一组数据,只不过它一旦创建便不能修改,所以又叫只读列表

它只有两个方法,一个是count(统计元组某个元素出现的次数tuple.count('str')),一个是index(查看某个元素的索引号tuple.index('str'))

>>> names = ('zhiwenwei','zhouyouxian')
>>> names.index('zhiwenwei')
0
>>> names.count('zhiwenwei')
1

元组练习题

有如下变量,请实现要求的功能

tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])

a. 请问tu变量中的第一个元素 “alex” 是否可被修改?

  元组不可直接被修改,需要转换成列表或字典

b. 请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”

  k2是字典的键,对应的值是列表可修改:tu[1][2]['k2']='Seven'

c. 请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”

  k3是字典的键,对应的值是元组不可修改


很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:553215015


2.4 字典类型

字典是包含0个或多个键值对的集合,没有长度限制,可以根据键索引值的内容。

Python语言中通过字典实现映射,通过大括号{}建立,建立模型如下:

{键1:值1,键2:值2,...}

>>> city = {'中国':'北京','美国':'纽约','法国':'巴黎'}
>>> city
{'中国': '北京', '美国': '纽约', '法国': '巴黎'}

拓展:字典是无序的。python语言中,字符串、列表、元组都是采用数字索引,字典采用字符索引。

字典的函数和方法

字典的基本原则

字典是一个键值对的集合,该集合以键为索引,一个键对应一个值信息

字典中的元素以键信息为索引访问

字典长度是可变的,可以通过对键信息赋值实现增加或修改键值对。

2.5 jieba库基本介绍

jieba库提供三种分词模式,最简单只需要掌握一个函数;

jieba是优秀的中文分词第三方库,需额外安装

jieba库的安装方法

pip install jieba

jieba分词的三种模式

精确模式:把文本精确切分,不存冗余单词

>>> word1 = jieba.lcut("python无所不能!除了生不出孩子,我们应该学习使用它!")
Building prefix dict from the default dictionary ...
Dumping model to file cache /tmp/jieba.cache
Loading model cost 1.832 seconds.
Prefix dict has been built succesfully.
>>> print(word1,type(word1))
['python', '无所不能', '!', '除了', '生不出', '孩子', ',', '我们', '应该', '学习', '使用', '它', '!'] <class 'list'>

2.6 实例:文本词频统计

英文文本:hamlet,统计出现最多的英文单词

https://python123.io/resources/pye/hamlet.txt

代码实现:

#Hamlet词频统计
def getText():
    txt = open("hamlet",'r').read()
    txt = txt.lower() #大写字母转换小写
    for word in '~!@#$%^&*()_+-={}[],./:";<>?':
        txt = txt.replace(word," ")#把多余符号转换为空格
    return txt
hamletTxt = getText()
words = hamletTxt.split() #以空格拆分为列表
counts = {}
for word in words:
    counts[word] = counts.get(word,0) + 1 #以每个词为键,值默认0,,每出现一次累加1
items = list(counts.items())
items.sort(key=lambda x:x[1],reverse=True) #[1]按照第二维排序,reverse=True表示降序
for i in range(10):
    word,count = items[i]
    print("{0:<10}{1:5}".format(word,count))

中文文本:三国,分析人物

https://python123.io/resources/pye/threekingdoms.txt

import jieba
txt = open("Threekingdoms", 'r', encoding="utf-8").read()
excludes = {'将军','却说','荆州','二人','不可','不能','如此'}
words = jieba.lcut(txt)
counts = {}
for word in words:
    if len(word) == 1:
        continue
    #书中同一人物多个名字统一改为一个名字
    elif word == '诸葛亮' or word == '空明日':
        rword = "孔明"
    elif word == '关公' or word == '云长':
        rword = "关羽"
    elif word == '玄德' or word == '玄德日':
        rword = "刘备"
    elif word == '孟德' or word == '丞相':
        rword = "曹操"
    else:
        rword = word
    counts[word] = counts.get(word, 0) + 1
for word in excludes:
    del counts[word]  #去重
items = list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)
for i in range(10):
    word,count = items[i]
    print("{0:<10}{1:>5}".format(word,count))

3 程序的控制结构

3.1 程序的分支结构

根据判断条件结果而选择不同向前路径的运行方式

单分支结构

if <条件> :

  <语句块>

示例:

guess = eval(input("请输入数字:"))
if guess == 88:
    print("猜对了")

 二分支结构

if <条件> :

  <语句块>

else:

  <语句块>
guess = eval(input("请输入数字:"))
if guess == 88:
    print("猜对了")
else:
    print("猜错了")

多分支结构

if <条件1> :

  <语句块1>

elif <条件2> :

  <语句块2>

...

else:

  <语句块N> 

示例

 
age = 25
count = 0
while count < 3:
    guess_age = int(input("guess_age:"))
    if guess_age == age:
        print("yes,you got it!!!")
        break
    elif guess_age > age:
        print("think smaller...")
    else:
        print("think bigger...")
    count += 1

 

3.2 程序的循环结构

遍历循环

语法结构:

for <循环变量> in <循环结构>:

    <语句块>

无限循环

由条件控制的循环运行方式

语法结构:

while <条件>:

    <语句块>

循环控制保留字

break 和 continue

-break 跳出并结束当前整个循环,执行循环后的语句

-continue 结束当次循环,继续执行后续次数循环

循环的拓展

当循环没有被break语句退出时,执行else语句。

else语句作为“正常”完成循环的奖励

3.3 异常处理

异常处理的基本使用

示例

try:
    num = eval(input("请输入数字"))
    print(num**2)
except:
    print("你输入的不是数字")

异常处理的高级使用

try:

  语句块1

except:

  语句块2

else:

  语句块3(不发生异常时执行)

finally

  语句块4(最终会执行)

3.4 实例:身体质量指数BMI

体质指数(BMI)= 体重(kg)÷ 身高²(m)

代码实例:

height,weight = eval(input("请输入身体(米)和体重(公斤)[逗号分开]:"))
bmi = weight / pow(height,2)
print("BMI数值为:{:.2f}".format(bmi))#.2f#保留两位小数
who,nat = "",""
if bmi < 18.5:
    who,nat = "偏瘦","偏瘦"
elif 18.5 <= bmi < 24:
    who,nat = "正常","正常"
elif 24 <= bmi < 25:
    who,nat = "正常","偏胖"
elif 25 <= bmi < 28:
    who,nat = "偏胖","偏胖"
elif 28 <= bmi <30:
    who,nat = "偏胖","肥胖"
else:
    who,nat = "肥胖","肥胖"
print("BMI指标为:国际'{}',国内'{}'".format(who,nat))

结果展示:

4 函数和代码复用

4.1 函数的定义和作用

def 函数名(o个或多个参数):

    函数体

    return 返回值

-函数是一段代码的表示

-函数是一段具有特定功能的、可重用的语句组

-函数是一种功能的抽象,一般函数表达特定功能

两个作用:降低编程难度和代码重用

函数的调用

4.2 函数的参数传递

可选参数传递

函数定义时可以为某些参数定义默认值,构成可选参数。

def test(n,m=1): #m为可选参数
    s = 1
    for i in range(1,n+1):
        s *= i
    print(s//m)
test(10)
test(10,2)

结果:

可变参数传递

def test(n,*args):#args为可变参数,也可以命名其他值
    s = 1
    for i in range(1,n+1):
        s += i
    for item in args:
        s += item
    print(s)
test(10,3)
test(10,3,1,5)

函数执行结果:

参数组合:*args和**kwargs

def test(*args,**kwargs):
    print("args =",args)
    print("kwargs =",kwargs)
    print("----------------------------------")
if __name__ == '__main__':
    test(1,5,94,564)
    test(a=1,b=2,c=3)
    test(1,2,3,4,a=1,b=2,c=3)
    test('I love python',1,None,a=1,b=2,c=3)

函数执行结果:

参数传递的两种方式:位置传递和名称传递

 

 小结:

函数可以有参数也可以没有,但必须保持括号。*args是可变参数,args接收的是一个tuple;**kw是关键字参数,kw接收的是一个dict。在同时使用*args和**kwargs时,必须*args参数列要在**kwargs前面。

4.3 lambda函数

lambda函数是一种匿名函数,即没有名字的函数;lambda函数用于定义简单的、能够在一行内表示的函数。

g = lambda x,y:x*y
print(g(4,5))

6 文件和数据格式化

5.1 文件的使用

Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。

常用语法格式

变量名 = open(文件路径(相对或绝对路径),打开模式,encoding=None)

打开模式

打开的文件模式描述
 ‘r’只读模式,默认值,文件不存在返回FileNotFoundError 
 ‘w’ 覆盖写模式,文件不存在则创建,存在则完全覆盖
 ‘x’ 创建写模式,文件不存在则创建,存在则返回FileExistsError
 ‘a’ 追加写模式,文件不存在则创建,存在则在文件最后追加内容
 ‘b’ 二进制文件模式
 ‘t’ 文本文件模式,默认值
 '+' 与r/w/x/a一同使用,在原功能基础上增加同时读写功能

file对象 

file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数

file对象描述
f.read(size)读入全部内容,如果给出参数,读入前size长度
f.readline() 读取整行,包括 "\n" 字符。
f.readlines(sizeint) 读取所有行并返回列表,若给定sizeint>0,则是设置一次读多少字节,这是为了减轻读取压力。
f.write(s) 将字符串或字节流写入文件
f.writelines(lines) 将元素全为字符串的列表写入文件
f.close() 关闭文件
f.seed(offset) 调整当前文件操作指针的位置,0-文件开头;1-文件当前位置;2-文件末尾位置
 f.flush() 刷新文件内部缓冲,数据立刻写入文件

5.2 wordcloud库的使用

 词云以词语为基本单位,更加直观和艺术第展示文件。

wordcloud库官网:https://amueller.github.io/word_cloud/

github地址:https://github.com/amueller/word_cloud

wordcloud下载安装

pip install wordcloud

wordcloud常规方法

w = wordcloud.WordCloud()

方法描述例子
w.generate(text)向wordcloud对象w加载文本text 
w.generate("Python by WordCloud")
w.to_file(filename) 将词云输出.png或.jpg图像文件 
w.to_file("outfile.png") 

 实例

import wordcloud
w = wordcloud.WordCloud()  #设置wordcloud对象
w.generate("Python by WordCloud,is fun and powerful!") #配置对象参数并加载词云文本
w.to_file("outfile.png") #输出词云文件

执行生成图片:

程序执行过程报错:ModuleNotFoundError: No module named 'matplotlib'

解决报错:安装python画图工具第三方库matplotlib:pip install matplotlib

wordcloud工作流程

      1. 分割:以空格分割单词
      2. 统计:单词出现次数并过滤
      3. 字体:根据统计配置字号
      4. 布局:颜色环境尺寸

配置对象参数

w.wordcloud.WordCloud(<参数>)

参数描述例子
 width 指定生成图片宽度,默认400像素 
width=500
 height 指定生成图片高度,默认200像素
height=300
 min_font_size 指定词云字体最小字号,默认4号 
min_font_size=20
 max_font_size 指定词云字体最大字号,根据高度自动调节 
max_font_size=40
 font_step 指定词云单词步进间隔,默认1 
font_step=6
 font_path 指定文件字体的路径,默认None font_path="msyh.ttc"
 max_words 指定词云显示最多单词数量,默认200 
max_words=5
 stopwords 指定词云排除列表,即不显示的单词列表 stopwords={"python"}
 mask 指定词云形状,默认长方形,修改需应用imread函数

 from scripy.misc import imread

mk=imread("pic.png")

mask=mk

 background_color 指定词云图片背景颜色,默认黑色
background_color="white"

实例1

import wordcloud
w = wordcloud.WordCloud()
text = "life is short, you need python"
w = wordcloud.WordCloud(background_color="white",width=500,height=300,
                        min_font_size=20,max_font_size=40,font_step=6,
                        max_words=5)
w.generate(text)
w.to_file("outfile2.png")

 实例2

import wordcloud
import jieba
text = """
wordcloud是python非常优秀的第三方库,词云以词语为基本单位更加直观和艺术的展示文本词云图,\
也叫文字云,是对文本中出现频率较高的关键词予以视觉化的展现,词云图过滤掉大量的低频低质的文本信息,\
使得浏览者只要一眼扫过文本就可领略文本的主旨。基于Python的词云生成类库,好用功能强大。\
在做统计分析的时候有着很好的应用。
"""
w = wordcloud.WordCloud(width=800,height=400,font_path="msyh.ttc")
w.generate(" ".join(jieba.lcut(text))) #中文需要先分词并组成空格分隔字符串
w.to_file("outfile3.png")

 实例3

常规图词云

https://python123.io/resources/pye/新时代中国特色社会主义.txt

import wordcloud
import jieba
f = open("新时代中国特色社会主义","r",encoding="utf-8")
text = jieba.lcut(f.read())
text = " ".join(text)
f.close()
w = wordcloud.WordCloud(background_color='white',width=800,height=400,font_path="msyh.ttc")
w.generate(text)
w.to_file("outfile4.png")

实例4

不常规图词云:生成下图五角星形状

import wordcloud
import jieba
from scipy.misc import imread
#图片必须是白色背景色
mask = imread('five-pointed star.png')
f = open("新时代中国特色社会主义","r",encoding="utf-8")
text = jieba.lcut(f.read())
text = " ".join(text)
f.close()
w = wordcloud.WordCloud(background_color='white',width=1000,height=700,font_path="msyh.ttc",mask=mask)
w.generate(text)
w.to_file("outfile5.png")

 效果

 


在这里还是要推荐下我自己建的Python学习群:553215015,群里都是学Python的,如果你想学或者正在学习Python ,欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2020最新的Python进阶资料和零基础教学,欢迎进阶中和对Python感兴趣的小伙伴加入!

小白python入门基础,全网2021最详细教程 1 变量和简单数据类型 变量命名格式:变量名 = “赋值” 1.1 变量使用规范 使用变量时,需要遵守一些规则。违反这些规则将引发错误。 ~变量名只能包含数字、字母、下划线。变量名不能以数字开头以及不能包含空格。 ~变量名不能将Python保留字和函数名作为变量名。如print等 如下是python3的33个保留字列表: ~变量名要简单又具有描述性。如name比n好,user_name比u_n好。 ~慎用大写字母I和O,避免看错成数字1和0。 1.2 字符串 字符串就是一系列字... 阅读详情

相关推荐

FUXA实战:5步搞定基于Web的SCADA系统搭建(含Node.js版本避坑指南)

本文提供了一份基于开源工具FUXA搭建Web版SCADA系统的实战指南。文章重点解析了从环境准备到生产部署的五个核心步骤,并特别强调了Node.js版本选择对西门子S7 PLC通信兼容性的关键影响,帮助开发者避开常见陷阱,快速构建工业监控界面。

weixin_29172963的博客 140

10年程序员职业生涯感悟—写给正在迷茫的你

希望能带给大家不一样的参考。或者能提前预防,少走弯路!

pythonandaiot的博客 1万+

CMOS 半加器和全加器&&数字集成电路&& Cadence Virtuoso

数字集成电路——半加器和全加器

计科小学生的博客 1万+

【2024】Python入门,详细基础教程,零基础入门,详细图文

Python入门基础介绍

weixin_42399800的博客 17万+

树莓派 SPI操作

扩展板配备一款0.96inch,128864分辨率的oled显示屏,通过SPI控制,先上显示效果图。由于程序过长,在这里我就不把代码全部贴出来了,只是简单讲解一下spi的操作函数。管脚如下如所有,左边方框的管脚分别为MOSI MISO SCLK,左边CE0,CE1为两个片选管脚,分别对应上图中的spidev0.0,spidev0.1两个设备。下载spidev库,复制到树莓派,并行运行如下命令解压安装。spi设备,此处设备为/dev/spi-decv0.0。在/dev路径下面,我们可以发现两个spi设备。

weixin_46529898的博客 914

HDMI设计2----EDID and E-EDID

1,EDID是什么?有什么用? 图1 应用场景 如图1所示的应用场景,PC将视频信号发送 到我们的设备上,经过一系列的传输和切换,设备将视频信号发送到显示器或者投影机上,也就是说,我们的设备位于PC和显示器之间。首先,在输入端,设备需要让PC知道自己是能够接受输入视频信号的,让PC认为自己是一台显示器。如果不这样做的话,PC可能会拒绝输出任何视频信号的(VGA接口不需要EDID也能输出)。除此之外,设备还要告诉PC自己支持的显示时序。而在输出端,当设备需要自建输出时序而不是简单的复制...

Archar_Saber的博客 7988

python入门教程(非常详细),python基础教程 入门教程

用Python写网络爬虫》作者: 【澳】Richard Lawson(理查德 劳森)本书讲解了如何使用Python来编写网络爬虫程序,内容包括网络爬虫简介,从页面中抓取数据的三种方法,提取缓存中的数据,使用多个线程和进程来进行并发抓取,如何抓取动态页面中的内容,与表单进行交互,处理页面中的验证码问题,以及使用Scarpy和Portia来进行数据抓取,并在最后使用本书介绍的数据抓取技术对几个真实的网站进行了抓取,旨在帮助读者活学活用书中介绍的技术。而不同的编程语言,干同一个活,编写的代码量,差距也很大。

神器榜 16万+

论文阅读|《强化学习在加工时间可变的机器人流水车间调度中的应用》

《Reinforcement Learning for robotic flow shop scheduling with processing time variations》 International Journal of Production Research/2021 1 摘要 我们解决了一个机器人流水车间调度问题,其中两种零件类型在每组给定的专用机器上进行处理。单个机器人在固定轨道上移动,一次运输一个部件,在给定的时间间隔内,这些部件在机器上的加工时间各不相同。我们使用强化...

太剧烈的快乐与太剧烈的悲哀是有相同之点的——同样地需要远离人群! 2930

python安装方法_Python入门基础教程(非常详细)

Python 是一门开源免费、通用型的脚本编程语言,它上手简单,功能强大,坚持「极简主义」。Python 类库(模块)极其丰富,这使得 Python 几乎无所不能,不管是传统的 Web 开发、PC 软件开发、Linux 运维,还是当下火热的机器学习、大数据分析、网络爬虫,Python 都能胜任。这套 Python 基础教程不是教科书,不会玩弄概念,而是力求口语化和通俗化,让读者尽快入门。如果有小朋...

weixin_39813200的博客 2611

(代码可运行)半导体器件和工艺模拟 使用Silvaco设计构建NMOS并提取各项工艺及器件参数

win10。

qq_20388971的博客 109

22、用户界面流程(UI Flow)全解析

本文全面解析了用户界面流程(UI Flow)的概念、创建步骤及其在系统设计中的应用。通过示例和操作步骤,详细介绍了如何确定屏幕范围、识别屏幕、创建过渡和标记触发器,并阐述了UI Flow在导航识别、验证、可用性优化、测试用例开发和需求推导中的重要作用。文章还结合问答系统案例,展示了UI Flow的实际应用价值,帮助读者深入理解并有效运用这一工具提升系统用户体验。

rice5的博客 153

【Python】全网最详细的Python入门基础教程(非常详细,整理而来)

标识符 在 Python 中,所有标识符可以包括英文(区分大小写的)、数字以及下划线(_),但不能以数字开头。 以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入。 以双下划线开头的 __foo 代表类的私有成员, 以双下划线开头和结尾的 __ foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。 语句 Python 的代码块中必须使用相同数目的行首缩进空格数 python中单行注

HNUJSY 10万+

1、vectorCast单元测试常用操作

进入软件主页面,点击file,选择set working directory,随便选择一个保存该项目的目录即可。

weixin_59334478的博客 2156

【全网力荐】堪称最易学的Python基础入门教程

目录 数据的名字和种类——变量和类型 初探数据种类 数据类型 数值运算 比较运算 变量和赋值 变量的好处 用赋值更新变量 变量和数据类型的关系 总结 数据类型 数值运算 数值比较 变量和赋值 一串数据怎么存储——列表和字符串 列表(List) 字符串(String) 总结 不只有一条路——分支和循环 input()、print() 和 int() 函数 分支 while 循环 条件的与、或、取反 for 循环 总结 将代码放进盒子——函数 函数的初步理解

累计发表博客60余万字,优快云 博客专家、Java 领域优质创作者、华为云享专家、阿里云专家博主。专注分享 Java 优质文章,毕设实战项目开发,全网粉丝10W+ 5万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

小白python入门基础,2021全网最详细教程

Python基础 Python基础01 Hello World! Python命令行 假设你已经安装好了Python, 那么在Linux命令行输入: $python 将直接进入python。然后在命令行提示符>>>后面输入: print('Hello World!') 可以看到,随后在屏幕上输出: Hello World! print是一个常用函数,其功能就是输出括号中得字符串。 (在Python 2.x中,print还可以是一个关键字,可写成print ‘Hello World!’,

minzhisocute的博客 1366

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

❄️全网最详细的Python入门基础教程,Python最全教程(非常详细,整理而来)

最近想要学习Python,所以就在网上整理了好多整理而来 超级详细的Python入门教程

努力前行,总会成为自己心中的那道光 18万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【Python】全网最详细最完整的Python基础教程,Python入门教程(索引篇)

本文系统地介绍了Python编程的基础知识,从什么是编程语言、编译型语言与解释型语言的区别到Python的优缺点、历史背景及应用领域。接着详细讲解了Python编程环境的搭建,包括Windows、Linux和Mac OS下的安装步骤,如何运行Python程序以及常见IDE的使用方法。文章还介绍了Python中的变量类型和运算符、列表、元组、字典和集合四大数据结构及其常用操作。此外,详细解读了字符串处理方法、流程控制语句(如条件语句、循环语句)、函数与lambda表达式、面向对象编程的类和对象、异常处理机制、

科技改变人类,技术成就未来 6619

全网最详细的Python入门基础教程,Python最全教程

3.Pythonplot_Matplotlib3D绘图函数plot_surface的rstride和cstride参数。9.Python2to3自动将Python2.x代码转换成Python3.x代码。7.Python2.x和Python3.x,初学者应如何选择?8.Python__iter__和__reversed__11.Python字符串操作(查找,替换,分割和连接)7.PythonScrapy突破反爬虫机制(一)8.PythonScrapy突破反爬虫机制(二)...

m0_72444380的博客 2107

Python入门教程(全网最详细),零基础入门到精通,从看这一篇开始!

一.初聊Python在学习Python之前,你不要担心自己没基础或“脑子笨”,我始终认为,只要你想学并为之努力,就能学好,就能用Python去做很多事情。在这个喧嚣的时代,很多技术或概念会不断兴起,我希望你能沉下心来去学习,不要急于求成,一步一个脚印。当你把某个技术学好、学精后,还是能做一些事情的,甚至能找到喜欢的工作或完成实践项目。程序语言没有最好,只有最适合。作为一名初学者,我非常推荐你学习Python,为啥?

m0_59236602的博客 11万+

全网最详细 Python 教程,零基础该如何入门?

光从编程的难易度来说,Python 简单&易学,零基础、跨专业都很容易上手。(想学全网最详细 Python 教程,详见文末哦~) 从就业前景来看,很多个领域都使用了 Python ,比如大数据、金融分析、机器学习、无人驾驶、 Web 开发等等。 除此之外,Python 的热潮也越来越汹涌,在 2017 年左右实现了逆风翻盘。甚至到 2021 年,Python 拿下了 TIOBE 2021 年度最受欢迎的编程语言。 其实,世界上没有哪门编程语言敢说自己是最好的。对于零基础的来说,选择一门最适合自己

Neuromystix的博客 502

【全网最详细python入门教程——什么是python、pycharm以及Anaconda】

本文详细解答了Python、PyCharm和Anaconda的关系与作用:Python是解释器,将代码翻译为二进制执行;PyCharm是编辑器,用于编写和调试代码;Anaconda是Python环境管理工具,安装前无需单独装Python。文章还介绍了在线解释器平台(如Kaggle),但强调本地环境配置的重要性,并提供了基础编程流程图示,帮助初学者理解软件开发的基本原理和工具链。最后提醒在线平台可能收费,建议掌握本地环境配置技能。

weixin_60217199的博客 745

新手如何正确自学Python?(全网最详细python入门教程)

作为过来人,我深知在入门阶段有一个正确的学习路线及学习方向是有多重要!为此我将基于自己的经验,为Python零基础的学习者规划一条清晰的学习路线,全篇干货,!!里面包含了各阶段需要学习到的东西和资源,一定能够帮助大家快速入门并深入掌握Python的精髓。全套Python学习资料分享《python安装工具&全套学习资料》免费分享(安全链接,放心点击)​​。

Candyz7的博客 6482

你们都是怎么学 Python 的?(全网最详细python入门教程)

如果你也想自学Python,可以关注我。我会把踩过的坑分享给你,让你不要踩坑,提高学习速度,还整理出了一套系统的学习路线,这套资料涵盖了诸多学习内容:开发工具,基础视频教程,项目实战源码,51本电子书籍,100道练习题等。相信可以帮助大家在最短的时间内,能达到事半功倍效果,用来复习也是非常不错的。希望这篇文章对你有帮助,也希望能帮到大家,因为你我都是热爱python的编程语言爱好者。↓↓↓↓资料获取:已打包,添加文末 Python笔记领取即可获取!

2301_78095812的博客 624

Python入门教程(全网最详细)

用于表示数值的类型,包括整数、浮点数、复数和布尔值。

2501_91113915的博客 979

python爬虫入门教程(非常详细),全网最细的Python爬虫教程

python爬虫入门教程(非常详细),全网最细的Python爬虫教程

大模型工程师老蓝的博客 1万+

2023年Python入门教程(全网最详细),python基础教程 入门教程

用Python写网络爬虫》作者:【澳】Richard Lawson(理查德 劳森)本书讲解了如何使用Python来编写网络爬虫程序,内容包括网络爬虫简介,从页面中抓取数据的三种方法,提取缓存中的数据,使用多个线程和进程来进行并发抓取,如何抓取动态页面中的内容,与表单进行交互,处理页面中的验证码问题,以及使用Scarpy和Portia来进行数据抓取,并在最后使用本书介绍的数据抓取技术对几个真实的网站进行了抓取,旨在帮助读者活学活用书中介绍的技术。而不同的编程语言,干同一个活,编写的代码量,差距也很大。

2301_76161259的博客 1445
上一篇: 图解NumPy:常用函数的内在机制
下一篇: Python是最强语言?看看俄罗斯Turla黑客开发的Python恶意软件
平静愉悦
博客等级 码龄7年 4819粉丝 310原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

平静愉悦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值