自学python

自学python

跟着《100天从新手到大师》开始自学python,感谢老师和各位大佬的无偿奉献,希望可以在上班前学会!

第一天

  1. 在官网下载最新的python编译器,安装然后hello,world
  2. 下载pycharm,社区版就行,调整一下老年人字体,护眼模式
  3. 整一个typora学学markdown,但实际上就当word用,符号根本不会
  4. 听从老师的建议,写完发个博客,纯粹记录一下,多个体验

课程内容

python的历史

原来官网下载的只是一个编译器,之前上班摸鱼直接在终端写,也是真的极简

python的优缺点

高级语言,上手简单,跨平台能力强,开源,但是速度慢

科普了一下机械语言,梦回单片机课程,我就是人肉编译器,全部给你搞砸掉!

python的应用

web前端、爬虫、数据分析、机器学习、自动化、量化交易

就想像小红书上的博主一样搞一个自动化之类的东西方便一下生活,或者爬虫一下游戏资料

第一个python程序

先学了下按住shift再右键可以选择在那个路径打开终端,终端里面输入python回车,就是交互式环境了,写一句就给你一个回应,有来有往就是交互式环境

  • 第一个作业——翻译import this

我自己的蹩脚翻译,看了些好的翻译修正了一下意思,就图一乐:

格式要好看

直白好过晦涩

正楷好过草书

草书好过隶书(他这里complex更偏向复合,complicated才是复杂,只能通过比喻来讲才能好一点?)

扁平好过嵌套

稀疏好过稠密(多写几行代码来处理一个事情好过一行直接搞定)

代码可读性很重要

没有特例,原则不可打破

哪怕实用性高于纯粹主义

不要忽略错误

除非你故意为之

条条大路通罗马的时候,走一条道

就应该只走那一条道

哪怕一开始想不到最近的那条道,除非你是修路的人才知道

现在做总比不做要好

不做通常比瞎做要好

如果这个法子外人很难懂,那就不是个好法子

如果这个法子外人都能搞懂,有可能是个好法子

命名空间可太棒啦,多来点多来点

更好的交互式环境——IPYTHON

pip config set global.index-url https://pypi.doubanio.com/simple

pip install ipython

quit就可以退出了

这里我的pip版本有点低了,给了个warning,居然连升级的代码都给出来了,直接粘贴复制哈哈,不过不升级也已经安装好了

WARNING: You are using pip version 22.0.4; however, version 22.1.2 is available.
You should consider upgrading via the 'E:\python310\python.exe -m pip install --upgrade pip' command.

然后听到老师说不要更新,芜湖,总之出了问题在百度解决吧

用文本编辑器写代码——VSCODE

记事本也行,写完保存为所有文件,编码为UTF-8,起名为.PY文件

python 把文件拖过来就是绝对路径

第一天就是不停装东西,疯狂压缩游戏空间哈哈

现在最新是1.68,知乎有大佬教了快速下载的方法,但是没搞懂怎么弄,评论里下了1.62的版本,然后是安装,不过现在1.62的版本是会自动跟你说安装简体中文并重启,爽!

没试着能不能跑python,先放一个教程,不行就来搞

工程化开发——PYCHARM

每个文件都会有一个专属的虚拟环境,选个路径之后啥都别动,创建新项目,耐心等待文件复制

开始写代码啦
print函数

print()函数自带换行,加end=‘’,就不换行啦

print('hello,world', end='')
print('你好,世界')

print('hello,world')
print('你好,世界')

结果就是

hello,world你好,世界
hello,world
你好,世界

小技巧:

print('-' * 50)

结果是50个-,可以当分隔线用

--------------------------------------------------
注释

#代表注释,只能写一行

ctrl+/,选中的地方全部都加#成为注释,再按一下就取消注释

“”“和”""也是注释,可以写多行

设置开头注释模板:

设置注释模板

运算符号
赋值运算符

以下图片皆来自菜鸟教程
赋值运算符

算术运算符

取模主要是用来判断奇偶性的,要记住啊我
算术运算符

关系运算符

关系运算符

逻辑运算符

布尔值之间的运算,优先级低于算数运算和关系运算

and和or称为短路运算符,因为其特性,第一个条件成立后面就不算了

逻辑运算符

  • 第二个作业——判断一个年份是不是闰年

四年一闰,百年不闰,四百年又闰

year = int(input('please input a year: '))
flag1 = year % 4 == 0
flag2 = year % 100 != 0
flag3 = year % 400 == 0
flag11 = flag1 and flag2
flag12 = flag11 or flag3
print(flag12)

练手题目嘛,可以写的再简洁点

year = int(input('请输入年份:'))
# x = year % 4 == 0
# y = year % 100 != 0
# z = year % 400 == 0
# print(x and y or z)
print(year %4 == 0 and year %100 != 0 or year %400 == 0)
  • 第三个作业——输入三条边的长度,判断能否构成三角形

任意两边之和大于第三边

side1 = int(input('please input the first side:'))
side2 = int(input('please input the second side:'))
side3 = int(input('please input the third side:'))
flag1 = side1 + side2 > side3
flag2 = side1 + side3 > side2
flag3 = side2 + side3 > side1
flag11 = flag1 and flag2
flag12 = flag11 and flag3
print(flag12)

同样也是写的冗余了

a = float(input('a ='))
b = float(input('b ='))
c = float(input('c ='))
print(a + b > c and b + c > a and a + c > b)
格式化输出

%代表占位符,f代表浮点数,可以用变量替换

保留小数点位数:%.2f保留两位小数

a1=float(input('a1= '))
b2=float(input('b2= '))

print('%f + %f = %f' %(a1,b2,a1+b2))
print('%f - %f = %f' %(a1,b2,a1-b2))
print('%f * %f = %f' %(a1,b2,a1*b2))
print('%f / %f = %f' %(a1,b2,a1/b2))
print('%f // %f = %f' %(a1,b2,a1//b2))
print('%f %% %f = %f' %(a1,b2,a1%b2))
#这里的第一个%是占位符,表示转义,所以需要两个%%
print('%f ** %f = %f' %(a1,b2,a1**b2))

结果是

a1= 123
b2= 45
123.000000 + 45.000000 = 168.000000
123.000000 - 45.000000 = 78.000000
123.000000 * 45.000000 = 5535.000000
123.000000 / 45.000000 = 2.733333
123.000000 // 45.000000 = 2.000000
123.000000 % 45.000000 = 33.000000
123.000000 ** 45.000000 = 11110408185131957010659080963921001637101840276079092263812695592440203675146350059871151325184.000000

这里我的格式不规范,因为手打空格觉得麻烦,所以有一个简便方法来啦

CODE菜单,reformat code,一键解决空格问题,还你漂亮排版

另一种格式化输入的方式(python3.6之后加入的)

f表示format,{}就是占位符,也可以控制小数点位数’:.nf’

print(f'{a1} + {b2} = {a1 +b2}')
print(f'{a1} + {b2} = {a1 +b2:.2f}')

结果是

a1= 123
b2= 45
123.0 + 45.0 = 168.0
a1= 123
b2= 45
123.0 + 45.0 = 168.00
定义变量——数据的载体
  1. python是动态的,你给值,他自动声明类型~~(太棒了,学C的时候有点死亡)~~
  2. 变量使用字母(Unicode字符)、数字(不能开头)、下划线,不能使用特殊字符
  3. 区分大小写
  4. 不能使用python中的关键字(有特殊含义的单词:if等)和保留字(已有函数名)
  5. 建议遵守:见名知意(很重要,因为你取完名字就忘记他是啥了),全小写命名,多个单词用下划线连接(snake case)
  6. 双击变量,右键,refactor,rename,一键全部改名
整数运算

input()函数输入,给个提示方便用户,输入的一律认为是字符

用int()转化成整数类型,并且只能输入整数,其他的都不认,直接报错~~(我就是不会,摆烂给你看)~~

int(input('a1 = '))
数据类型

type()函数可以知道变量的数据类型

print(a,type(a))

ctrl+D 复制代码,注意这里是光标放在要复制的一行,就可以直接复制并且换行,如果你跟我一样傻傻的用光标划拉了再复制,就是没有换行的呜呜呜呜

ctrl+Y删除代码

布尔值(bool)只有True和False,表示真和假

d = 2 > 1
print(d,type(d))

结果是

True <class 'bool'>

复数类型(complex)极少用到

e = 3+5j
print(e,type(e))

结果是

(3+5j) <class 'complex'>

想到了计算电流的相位还是什么东西,开始痛苦

浮点数的科学计数法

f=123e-5
print(f)
g=12.3e-5
print(g)

结果是

0.00123
0.000123

浮点数表示法的问题

print(0.1+0.2+0.3)
print(0.3+0.2+0.1)

结果是

0.6000000000000001
0.6

解决办法就是,全部用整数运算,最后的结果用浮点数输出(银行算钱特别注意啦)

进制

十进制——110(decimal)

八进制——0o110(octal)

十六进制——0x110(hexadecimal)

二进制——0b110(binary)

进制转换,痛苦单片机

bin()十进制转二进制

oct()十进制转八进制

科学计数法

f=123e-5
print(f)
g=12.3e-5
print(g)

结果是

0.00123
0.000123

浮点数表示法的问题

print(0.1+0.2+0.3)
print(0.3+0.2+0.1)

结果是

0.6000000000000001
0.6

解决办法就是,全部用整数运算,最后的结果用浮点数输出(银行算钱特别注意啦)

进制

十进制——110(decimal)

八进制——0o110(octal)

十六进制——0x110(hexadecimal)

二进制——0b110(binary)

进制转换,痛苦单片机

bin()十进制转二进制

oct()十进制转八进制

hex()十进制转十六进制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值