Mooc的Python3学习笔记

文章目录

  • 一些优秀的博主
  • 仅供自己查阅!!!
  • 首先是掌握基本语法!
  • 内置的运算符函数
  • 函数模块补充知识点
    • pass
    • 函数返回多个值
  • 关于默认参数使用的注意事项
  • 可变参数的使用方法
  • 天天向上代码
  • 单元测试
  • 异常处理代码
  • 单例模式
  • Python 中的 if __name__ == '__main__' 该如何理解
  • python环境搭建和pycharm的安装配置及汉化(零基础小白版)
  • PyCharm和git安装教程
  • 爬虫
    • 简单例子1
    • 简单例子2
    • BeautifulSoup的使用1
    • BeautifulSoup的使用1

一些优秀的博主

http://blog.konghy.cn/
廖雪峰大牛
Python3教程

仅供自己查阅!!!

首先是掌握基本语法!

先来几个代码

str1 = input("请输入一个人的名字:")
str2 = input("请输入一个国家的名字:")
print("世界这么大,{}想去看看{}:".format(str1,str2))
  • 1到N求和
n = input("请输入一个整数:")
sum = 0for i in range(int(n)):sum += i + 1
print("1到N求和的结果:",sum)
  • 乘法口诀表
for i in range(1,10):for j in range(1,i +1):print("{}*{}={:2}  ".format(j,i,i*j),end = '')print('')
  • 打印1! + 2! + 3! + …10!
sum , tem = 0, 1
for i in range(1,4):print("{}".format(i))
for i in range(1,4):tem = i * temsum += tem
print("{}".format(sum))
  • 猴子吃桃问题!
n = 1
for i in range(5,0,-1):n = (n + 1) << 1
print(n)
  • 摄氏度和华氏度温度转换
TempStr = input("")if TempStr[0] in ['F','f']:C = (eval(TempStr) -32 ) /1.8print("{:.2f}C".format(C))
elif TempStr[0] in ['C','c']:F = 1.8 * eval(TempStr) + 32print("{:.2f}F".format(F))
else:print("输入格式错误")
  • 转义字符处理方法
    r’‘表示’'内部的字符串默认不转义
# -*- coding: utf-8 -*-
n = 123
f = 456.789
s1 = 'Hello, world'
s2 = 'Hello, \'Adam\''
s3 = r'Hello, "Bart"'
s4 = r'''Hello,
Lisa!'''

可以看看这几个输出结果,在理解一下转义字符吧

Hello, world 
Hello, 'Adam' 
Hello, "Bart" 
Hello, 
Lisa! 

内置的运算符函数

  • 这个要看,比较常用,掌握基本的意义
    https://www.cnblogs.com/xiao1/p/5856890.html

函数模块补充知识点

加入定义了一个函数,我们先不写,但是其他模块写好了,要跑一下看看效果,可是这个函数没有内容编译器会报错这个时候有一个概念

pass

  • 空函数
def nop():pass

这样子让代码是可以顺利编译运行的

if age >= 18:pass

函数返回多个值


def TestReturnValue(a, b, c, d):return a + b, c * dnum1, num2 = TestReturnValue(1, 2, 3, 4)print(num1, num2)r = TestReturnValue(1, 2, 3, 4)
print(r)

运行结果

3 12
(3, 12)Process finished with exit code 0

原来返回值是一个tuple!但是,在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋给对应的值,所以,Python的函数返回多值其实就是返回一个tuple,但写起来更方便。《廖雪峰老师解释》

关于默认参数使用的注意事项

  • 如果你没有第一种写法,就会出现如下输出所示的错误。本来指向给你的输出后面加一个‘END’,但是每次调用就会多一个’END’。
def add_end_Right(L=None):if L is None:L = []L.append('END')return Ldef add_end_False(L=[]):L.append('END')return Lprint(add_end_Right())
print(add_end_Right())
print(add_end_Right())print(add_end_False())
print(add_end_False())
print(add_end_False())
  • 输出结果

['END']
['END']
['END']['END']
['END', 'END']
['END', 'END', 'END']

可变参数的使用方法

def Calculation(*num):count = 0for i in num:count += ireturn countprint(Calculation(1,2,3,4))
  • 输出
10

天天向上代码

import math
dayup = math.pow((1.0 + 0.005), 365)
daydown = math.pow((1.0 - 0.005),365)print("向上:{:.2f},向下:{:.2f}.".format(dayup,daydown))
def dayUP(df):dayup = 0.01for i in range(365):if i % 7 in [6,0]:dayup = dayup * (1 - 0.01)else:dayup = dayup * (1 + df)return dayupdayfactor = 0.01
while(dayUP(dayfactor) < 37.78):dayfactor += 0.001print("每天努力参数是:{:.3f}.".format(dayfactor))

单元测试

原文链接

单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。

比如对函数abs(),我们可以编写出以下几个测试用例:

输入正数,比如1、1.2、0.99,期待返回值与输入相同;

输入负数,比如-1、-1.2、-0.99,期待返回值与输入相反;

输入0,期待返回0;

输入非数值类型,比如None、[]、{},期待抛出TypeError。

把上面的测试用例放到一个测试模块里,就是一个完整的单元测试。

如果单元测试通过,说明我们测试的这个函数能够正常工作。如果单元测试不通过,要么函数有bug,要么测试条件输入不正确,总之,需要修复使单元测试能够通过。

异常处理代码

try:<body>
except <ErrorType1>:<handler1>except <ErrorType2>:<handler2>
except:<handler0>
else:<process_else>
finally:<process_finally>

单例模式

class Singleton(object):class _A(object):def __init__(self):passdef display(self):return id(self)_instance = Nonedef __init__(self):if Singleton._instance is None:Singleton._instance = Singleton._A()def __getattr__(self, attr):return getattr(self._instance, attr)if __name__ == '__main__':s1 = Singleton()s2 = Singleton()print(id(s1), s1.display())print(id(s2), s2.display())

代码的解释
def getattr(self, attr):
return getattr(self._instance, attr)

# 例如这里有一个类 A ,,有两个属性
>>> class A:
...     test1 = "this test1"
...     test2 = "this test2"
...
>>># 然后实例化一个对象
>>> a = A()# 就可以用 getattr  直接去获取对象 a 的属性值
>>> getattr(a, "test1")
'this test1'
>>>
>>> getattr(a, "test2")
'this test2'
>>>

Python 中的 if name == ‘main’ 该如何理解

http://blog.konghy.cn/2017/04/24/python-entry-program/

python环境搭建和pycharm的安装配置及汉化(零基础小白版)

https://blog.csdn.net/ling_mochen/article/details/79314118#commentBox

PyCharm和git安装教程

https://blog.csdn.net/csdn_kou/article/details/83720765

爬虫

学习资源是中国大学mooc的爬虫课程。《嵩天老师》
下面写几个简单的代码!熟悉这几个代码的书写以后基本可以完成需求!

简单例子1

import requestsr = requests.get("https://www.baidu.com")
fo = open("baidu.txt", "w+")
r.encoding =  'utf-8'
str = r.text
line = fo.write( str )

简单例子2

import requests
url = "https://item.jd.com/2967929.html"
try:r = requests.get(url)r.raise_for_status()//如果不是200就会报错r.encoding = r.apparent_encoding//转utf-8格式print(r.text[:1000])//只有前1000行
except:print("False")fo.close()

BeautifulSoup的使用1

fo = open("jingdong.md","w")url = "https://item.jd.com/2967929.html"
try:r = requests.get(url)r.encoding = r.apparent_encodingdemo = r.textsoup = BeautifulSoup(demo,"html.parser")fo.write(soup.prettify())fo.writelines(soup.prettify())
except:print("False")fo.close()

BeautifulSoup的使用1

fo = open("baidu.md","w")try:r = requests.get("https://www.baidu.com")r.encoding = r.apparent_encodingdemo = r.textsoup = BeautifulSoup(demo,"html.parser")fo.write(soup.prettify())fo.writelines(soup.prettify())
except:print("False")
fo.close()

附赠
爬虫和python例子开源链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/382440.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用supervisord 来守护 nginx进程

supervisord 简介&#xff1a; Supervisord 是用 Python 实现的一款的进程管理工具&#xff0c;supervisord 要求管理的程序是非 daemon 程序&#xff0c;supervisord 会帮你把它转成 daemon 程序&#xff0c;因此如果用 supervisord 来管理进程&#xff0c;进程需要以非daemo…

Mac快捷键和实用技巧

文章目录如何更改应用图标怎么移动Mac状态栏的图标macOS常用快捷键多开QQ如何更改应用图标 https://www.macdu.org/16592.html 怎么移动Mac状态栏的图标 https://www.macdu.org/16683.html macOS常用快捷键 https://www.macdu.org/16607.html 多开QQ https://www.macdu.…

vs2017编译QT with ssl

背景&#xff1a;项目中使用的Qt环境不支持https请求&#xff0c;原因是 源码编译的时候没有链接相应的ssl库文件。需要重新编译qt 第一步 先编译Openssl 1)安装perl&#xff0c;并配置环境变量 下载地址&#xff1a; http://downloads.activestate.com/ActivePerl/releases/5…

go语言实现2048小游戏(完整代码)

文章目录2048逻辑分析完整代码2048逻辑分析 2048小游戏的基本操作是上下左右&#xff0c;每个操作的逻辑都不太一样&#xff01;这个时候&#xff0c;通过数组旋转的方式。将所有操作转换为向上的操作 git地址 https://gitee.com/hodgekou/golang.git package mainimport (&q…

动态二维码免费制作

python3制作二维码 很多网站都可以自定义制作很漂亮的二维码&#xff0c;提供了各种素材&#xff0c;但是输出文件又各种限制&#xff0c;非要买她的会员不可。好吧&#xff01;那我们就自己做一个。&#xff08;大牛的开源项目&#xff09; 最终效果 开源项目网站 git clon…

vs 2017 静态库 动态库 的初步使用

静态库的初步使用 新建 静态库 项目 Lib1 会产生 sln文件与vcproj文件&#xff0c;vcproj是工程文件&#xff0c;sln是解决方案文件 一个解决方案可以有多个工程 在头文件(Lib1.h)写函数声明&#xff0c;在cpp文件定义函数实现 这时候右键点击项目 ->生成, 会产生 Lib1.lib…

C语言贪吃蛇

扩展功能实现 加速减速计分链表实现彩色界面暂停 开源代码 贪吃蛇 动图展示&#xff0c;&#xff08;加载比较慢&#xff09;

C++ 读取windows服务列表 与操作注册表

读取服务列表 https://www.cnblogs.com/Leo-Forest/archive/2013/05/03/3056569.html 操作注册表 https://blog.csdn.net/yanchenyu365/article/details/84840908

Python练手项目

python3学习笔记《目录》 PyCharm和git安装教程 git入门教程 python3学习笔记 Mooc学习Python3笔记 python3字符串处理&#xff0c;高效切片 三国演义人物出场统计 统计哈姆雷特文本中高频词的个数 python3制作动态二维码 python的文件操作 简单的爬虫笔记 爬虫实战项…

windows C++ 通过WMI获取底层信息

参考 可以通过修改参数来获取相应的信息 https://www.cnblogs.com/hjbf/p/10775112.html https://docs.microsoft.com/zh-cn/windows/win32/cimwin32prov/win32-operatingsystem?redirectedfromMSDN

知网毕业论文爬取

知网论文 查找文献的时候每次只显示10页二次检索功能又还没有&#xff08;不知道是不是我没找到&#xff09;。干脆用爬虫把所有和自己论文关键字相关的文献题目都爬取下来&#xff0c;然后自己做一个小的检索表。 开源项目 https://github.com/hodgekou/CNKICrawler.git 配…

go语言 函数相关1:实参到形参的传递永远是值拷贝

相关知识点 a. 函数实参到形参的传递永远是值拷贝 b. 函数参数 支持不定长参数,不定参数名在函数体 内相当于切片&#xff0c;对切片的操作同样适合对不定参数的操作 c. 切片是引用类型&#xff0c;值包含指向数组的指针 func test1(s ...int) { // s为不定长参数s[0] 888 }…

git 初步使用01

git工作流程 git的安装 1&#xff09;安装git 2&#xff09;安装乌龟 3&#xff09;汉化乌龟创建本地仓库 在一个空目录&#xff0c;打开git bash here&#xff0c; 输入命令 git init 删除并保留本地副本 选中目标文件&#xff0c;右键乌龟&#xff0c;删除并保留本地副本 这…

net-tools和ifconfig

文章目录历史关系两者使用对比一、显示所有已连接的网络接口二、激活或停用网络接口三、为网络接口分配IPv4地址四、移除网络接口的IPv4地址五、显示网络接口的IPv4地址六、为网络接口分配IPv6地址七、显示网络接口的IPv6地址八、移除网络设备的IPv6地址九、改变网络接口的MAC地…

go语言在windows编译在linux上运行的可执行程序

package mainimport ("fmt""os""os/exec" )//filepath: 要编译的文件的路径 func build(filepath string){_ os.Setenv("CGO_ENABLED", "0")_ os.Setenv("GOARCH", "amd64")_ os.Setenv("GOOS&…

Django无法显示图片

首先注意的一点是&#xff0c;Django没有根目录的这个说法&#xff0c;所以下载下来的html文件没有办法直接使用&#xff0c;必须进行修改路径&#xff0c;特别是图片引用的路径&#xff0c;需要进行修改。 路径不对 源码 {% load staticfiles %} <img src"{% stati…

go语言函数相关

函数类型 函数类型也叫作函数签名&#xff0c; 就是函数定义首行去掉函数名、参数名和&#xff5b;&#xff0c;可以使用fmt.Printf 的”%T”格式化参数打印函数的类型。 可以使用 type 定义函数类型&#xff0c;函数类型变量可以作为函数的参数或返回值。 实际函数类型变量和…

go语言如何连接数据库

文章目录安装驱动连接数据库查询表结果插入结果删除结果安装驱动 go get github.com/go-sql-driver/mysqlimport ("database/sql""fmt"_ "github.com/go-sql-driver/mysql" )连接数据库 //用户名&#xff1a;密码^tcp(地址:3306)/数据库db, err…

在windows下,编译可访问https的libcurl静态库过程

1. 首先编译openssl静态库 整个过程用的是 vs2015命令提示工具 需要安装perl 下载地址&#xff1a;添加链接描述 解压后&#xff0c; 在 openssl-1.0.2e目录下创建develop这个文件夹&#xff0c; cd到 openssl-1.0.2e目录下&#xff0c; a.配置编译文件和模式 执行 perl Co…

Go语言爬虫项目将结果写入MySql数据库

来源于Google资深工程师深度讲解Go语言 package mainimport ("fmt""io/ioutil""net/http" )const url "http://www.zhenai.com/zhenghun"func main() {//发送get请求resp, err : http.Get(url)if err ! nil {panic(err)}//关闭通道d…