资讯专栏INFORMATION COLUMN

磨刀霍霍:我李汉三又回来写代码啦~

buildupchao / 862人阅读

摘要:常量中,通常用大写的变量名表示常量。含有中文的无法用编码,因为中文编码的范围超过了编码的范围,会报错。个中文字符经过编码后通常会占用个字节,而个英文字符只占用个字节。

写在前面的话
不知不觉毕业已经三年多了,现在的工作中,极少涉及代码的工作。主要接触的项目是BI的建设,做的更多的类似产品经理的工作,或者比较初级的数据分析的工作。
因为没有美工和测试小伙伴,所以还额外承包了这两项工作的我,偶尔也能接触到代码,比如echarts的使用,比如sql语句的编写。除此之外,有时候还有视频制作和文案撰写的工作。整体来说,整个工作生涯算是比较“充实”,什么都尝试过,所以在即将四周年的时候,我想,我该做点改变,再不疯狂我就老了。
考虑过文案策划及后期制作的工作,但是考虑到三年累计的工作经验,且屈服于现实的状况,我还是选择继续数据分析的工作,或许这个转折也挺生硬的,而且我其实更喜欢做后期制作的工作(例如明星大侦探里有毒的后期),但是当我做下了这个决定,我就准备努力冲啦!
我不害怕可能会有复杂的困难,我只害怕自己不曾努力,然后在老了之后才追悔莫及。
毕竟,我已经丢了三年。
所以,无论如何,加油吧!

所以下面是认真开始学习的正文
数据分析,我决定从python入手,主要的学习途径是廖雪峰的官方网站。

python的简介和安装

这一步可以跳过,因为之前就已经尝试安装过。

第一个python程序

无论如何,hello world!

print("hello world!")

python交互模式和命令行模式的不同

执行.py文件只能在命令行模式下执行。

在windows下不能直接运行.py文件,但是,在Mac和Linux上是可以的,方法是在.py文件的第一行加上一个特殊的注释:

#!/usr/bin/env python3

print("hello, world")

然后,通过命令给hello.py以执行权限:

$ chmod a+x hello.py

就可以直接运行hello.py了。(然鹅,现在并没有Mac,摊手)

输入和输出

print()函数可以接受多个字符串,用逗号“,”隔开,就可以连成一串输出,遇到逗号“,”会输出一个空格。
input()函数用于输入,在输入的同时,在变量中存储了输入的参数。

input()可以显示字符串来提醒用户。

Python基础

python的注释是用#,使用缩进方式的语法,当以:结尾时,视为代码块。
按照约定俗成的管理,应该始终坚持使用4个空格的缩进。

请务必注意,Python程序是大小写敏感的,如果写错了大小写,程序会报错。

数据类型

整数、浮点数、字符串。

如果字符串里面有很多字符都需要转义,就需要加很多,为了简化,Python还允许用r""表示""内部的字符串默认不转义
如果字符串内部有很多换行,用n写在一行里不好阅读,为了简化,Python允许用"""..."""的格式表示多行内容,注意在输入多行内容时,提示符由>>>变为...,提示你可以接着上一行输入,注意...是提示符,不是代码的一部分。

布尔值 使用and or not 计算。

空值 None 但不等同与0,因为0是有意义的。

变量 可以是任意数据类型,也可以重复赋值。

| 动态语言和静态语言的区别。静态语言在定义变量时候必须指定变量类型(eg:Java)。
| 理解变量在内存中的表示。

常量 Python中,通常用大写的变量名表示常量。

| 除法 地板除 求余数

10 / 3    无论除数与被除数是否为整数,结果都为浮点数
10 // 3   只取结果的整数部分
10 % 3    得出余数

字符串与编码

对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符。
由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes。

ython对bytes类型的数据用带b前缀的单引号或双引号表示

x = b"ABC"
y = "ABC"

x与y是不同的,x是字节型的,y是str,x的每个字符只占用一个字节
纯英文的str可以用ASCII编码为bytes,内容是一样的,含有中文的str可以用UTF-8编码为bytes。含有中文的str无法用ASCII编码,因为中文编码的范围超过了ASCII编码的范围,Python会报错。

在bytes中,无法显示为ASCII字符的字节,用x##显示。

反过来,如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法。

如果bytes中包含无法解码的字节,decode()方法会报错。

如果bytes中只有一小部分无效的字节,可以传入errors="ignore"忽略错误的字节。

len()函数计算的是str的字符数,如果换成bytes,len()函数就计算字节数。

1个中文字符经过UTF-8编码后通常会占用3个字节,而1个英文字符只占用1个字节。

为了保证源文件以utf-8读出,需要在开头注释:

#!/usr/bin/env python3   ---告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;
# -*- coding: utf-8 -*-   ---告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。

如果要保证源文件是utf-8编码,需要在编辑器中进行设定。

格式化

%和format()

使用list和tuple

| list为有序集合。是使用方括号的朋友
| 用len()可以获取元素个数。索引从0开始,最后一个元素的索引为len(list)-1。获取最后一个元素,还可以用-1作为索引,直接获得最后一个元素。

| list为可变的有序表,可以append()追加元素到末尾;可以insert()到指定位置;可以pop()删除最末尾元素,参数可以为i,即索引位置;可以直接赋值给对应的索引位置list[i] = value;内里的元素类型也可以各自不同,或者为另一个list。当list里面啥都没有的时候,len(list)输出为0。


| tuple->元祖,一旦初始化就不能修改。因为不可变,所以更安全。是使用圆括号的朋友

定义一个只有1个元素的tuple,要使用(1,),加上逗号,不产生歧义,否则可能会误认为数学计算。

 t = (1,)

理解“可变的tuple”

>>> t = ("a", "b", ["A", "B"])
>>> t[2][0] = "X"
>>> t[2][1] = "Y"
>>> t
("a", "b", ["X", "Y"])

其实变化的是tuple里的list的指向,所以并不是tuple本身发生了变化。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42823.html

相关文章

  • 磨刀霍霍:爬爬爬爬爬爬虫爬起来~

    摘要:目标很简单,因为我想要爬一下证券化率,然后可视化输出结果。证券化率的基础就是上市公司的总市值,对于证券化率其实还蛮多说法的,比如雪球的这篇文。我们可以利用这个回调函数来显示当前的下载进度。 写在前面的叨叨 折腾了这么久,我终于在喝完一听快乐肥宅水后下定决心来学习写爬虫了。目标很简单,因为我想要爬一下证券化率,然后可视化输出结果。证券化率的基础就是上市公司的总市值,对于证券化率其实还蛮多...

    Allen 评论0 收藏0
  • 程序员如何自学习?阿里资深技术专家这样做

    摘要:而程序员和医生律师的不同点在于持续学习上。两个小问题是需要收费,一年大概刀图书都是英文的。的视频基本都有英文字幕,配合作者的,英语不好的同学学习也没有问题。英文好的有技术功底的同学多发表一些观点,其他的同学都 摘要: 行业发展得太快,你必须学习,纯靠经验积累行不通,技术淘汰的速度远大于你经验积累的速度。 非鸡汤:不要和程序员谈自己的编程历史,很多的经验在今天已经不适用了。只要2-3年...

    Jacendfeng 评论0 收藏0
  • js设计模式(二)-工厂模式

    摘要:前言设计模式填坑系列,紧接前文距离上次写笔记又过去了一个多月,我也不知道怎么加班加着加着就一个月了正文定义工厂模式是指提供一个创建对象的接口而不保留具体的创建逻辑,可以根据输入类型创建对象。 前言 设计模式填坑系列,紧接前文(距离上次写笔记又过去了一个多月,我也不知道怎么加班加着加着就一个月了-_-!) 正文 定义 工厂模式是指提供一个创建对象的接口而不保留具体的创建逻辑,可以根据输入...

    figofuture 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<