Python基础学习笔记(一)变量与数据类型

https://m.toutiao.com/is/J3fN6eK/

Python是一门易学的面向对象的程序设计语言,可以轻易地完成界面、文件、封装等高阶需求,可移植性好,有非常多功能强大的库与包,如Numpy(数值计算)、SciPy(数学、科学与工程计算)、Matplotlib(数据绘图工具)等等,可以进行应用程序开发、数据可视化、网站后端,近年来人工智能机器学习的火爆,作为首选开发语言Python更是成为了编程语言中的香饽饽。它的代码结构清晰、简单易学,我们有什么理由不好好学习一下Python呢~我们从今天开始,正式开始学习Python的基础知识:

本节知识框架:

本节知识框架

一、程序的结构

Python程序的结构

1. 程序的入口main函数

定义了一个个函数后,怎么调用这些函数呢?使用main函数调用它

1.# 程序的入口:main函数2.if __name__ == '__main__':3. function()# 要调用的函数

为了让程序具有更强的可读性,需要为程序设置一个入口,这个入口就是main函数。

2. 注释

(1) Python里单引号与双引号所具有的功能是一样的,多行注释通常使用三对单引号或者三对双引号;

(2)对于某一句代码的注释通常写在代码的上一行使用#进行注释;

(3)像下面这种注释比较规范

1.# !/usr/share/pythonprj/2.# -*- coding:UTF-8 -*-3.4.'''5.模块介绍:实现加减乘除运算6.~~~~~~~~~~~~~~~~~~~~~7.两数相加:add(num01,num02)8.两束相减:sub(num01,num02)9.两数相乘:mul(num01,num02)10.两数相除:del(num01,num02)11.'''12.13.def add(num01,num02):14.    # 返回两数之和15.    return num01 + num0216.17.def sub(num01,num02):18.    # 返回两数之差19.    return num01-num0220.21.def mul(num01,num02):22.    # 返回两数之乘23.    return  num01*num0224.25.def div(num01,num02):26.    # 返回两数之商27.    return num01/num02

3. print打印

(1)print(“helloworld”)其实系统默认隐藏了一个参数end,完整的print()语句是print('helloworld',end='\n'),所以print语句打印会自动换行,如果想让其不换行打印,我们把end参数的\n去掉即可。

(2)print(a,b)实际含义是不换行分别打印print(a)print(b)

(3)一次性打印多个值

1.print('tom','jerry','alice','tom')

打印的结果是

1.tom jerry alice tom

打印的内容直接默认是用空格连接,如果我们想打印的内容之间使用其它连接符连接可以使用分割符sep参数,如果使用==连接,就可以这样写:

1.print('tom','jerry','alice','tom',sep='==')

这样打印的结果就是

1.tom==jerry==alice==tom

这样就可以在所有的元素之间加上你想要的分隔符

(4)把打印的内容输出到文件

1.str01 = '本次消费的金额为100元'2.f = open('/Users/yushengtan/desktop/sales.txt','w')3.print(str01,file = f)

这样就能把打印的内容输出到文件中;

4. Input输入

所有输入的字符,都会被系统当做字符串 题目:输入两个数,求两个数之和:

1.# 方法一2.num01 = input('请输入第一个数:')3.num02 = input('请输入第二个数:')4.print('两个数之和等于:{:d}'.format(int(num01)+int(num02)))5.# 方法二6.num01,num02 = eval(input('请输入两个数,以逗号分割:'))7.print('%d + %d = %d' % (num01,num02,num01+num02))

这里的eval函数的特点:

a. 只能一次输入多个整数,不能是字符串

b. 输入后自动转化为int类型

二、变量

1. 什么是变量

变量是一个什么都能装的容器,只要是数据都能存; 不需要事先声明变量类型

2. 使用变量

(1)变量名由字母、数字、下划线、组成,不能以数字开头

(2)区分大小写

(3)变量名中不能包含空格

(4)不能使用Python中的关键字

(5)变量命名使用小写字母,见名知意,多个单词用下划线连接;

(6)一次定义多个变量,可以写成一行a=1;a=2;a=3或者a,b,c = 1,2,3

3. 变量如何存储数据

变量是为了方便取出存储在内存中的数据,对于数值类型,相同的值只存储一份。

三、 数据类型

1. 数据类型的种类

(1)Python3里整形只有int型,无论多大的数值都可以存;

(2)浮点型float精度只有17位,超过17位自动转化为科学计数法进行表示

(3)布尔类型,TrueFalse

(4)字符串型,可以直接通过取字符串中的数值。

1.str01 = 'xiaoyu'2.print(str01[0]) #打印的结果就是`x`3.print(str01[1:3]) #打印的结果就是`ia`4.print(str01[-1]) #打印的结果就是`u`

2. 数据类型转换

方法:要转换的类型(数据)

要把字符类型x转换为整数类型 int(x)

把x转化为字符串:str(x)

把整数x转化为字符:chr(x)

把一个字符串转化为它的整数值:ord(x)

将一个整数转化为十六进制字符串:hex(x)

将一个整数转化为八进制字符串:oct(x)

将一个整数转化为二进制字符串:bin(x)

3. 如何获取变量的数据类型?如何判断变量是不是属于一个数据类型?

可以通过type(变量名)就可以知道变量的数据类型;

可以使用isinstance方法,isinstance(变量名,(数据类型))

1.if isinstance(str01,(str)):2.    print('字符型')

4. 数值类型

(1)如何查看变量占用多少内存空间? 要导入模块sys,调用方法sys.getsizeof(变量名)

1.num01 = 10002.print('num01占用的空间:',sys.getsizeof(num01))

(2)八进制0o开头,十六进制0x开头

(3)整形数值常见方法:

  • abs() 绝对值
  • math.fabs() 绝对值
  • math.sqrt() 平方根
  • math.pow(a,b) a的b次方
  • max() 返回最大值
  • min() 返回最小值

(4)获取整数位,保留指定位数有效数字 使用round方法:

1.print(round(12.3456))  #输出结果只会打印122.print(round(12.3456,2))  #输出结果为12.35

使用math.ceil()方法,返回数字的上入;

使用math.floor()方法,返回数字的下舍;

使用modf()方法,返回两个数值,前一个数是小数部分、后一个个数是整数部分;

1.print(math.modf(12.22)) #返回(0.22,12.0)

5.字符串类型

(1)表示方法

字符串数据类型使用单引号双引号都可以;

1.str01 = 'xiaoyu'2.str02 = 'hello'

(2)长字符串的表示方法

  • 使用续航符\
1.str03 = 'hello nice to meet you'\2.'my name is xiaoyu'
  • 使用三个双引号或者三个单引号
1.str04 = ''' hello nice to meet you2.my name is xiaoyu3.'''

使用三个单引号或者双引号可以保留原长字符串的长文本排版格式

(3)转义字符和取消转义

打印字符串的时候使用斜杠加字母表示一个特殊的功能

\t 表示横向制表符

\n 表示回车换行

\'表示打印双引号'

\\表示打印反斜杠\

对于某些特殊的符号,使用取消专业字符来表示特符号本身,将其打印出来,在要打印的字符串引号前加一个字符r表示要打印的字符串不具备转义的功能

1.print('\\') # 打印出来的结果只有一个 \2.print(r'\\') #这样就可以原封不动打印出来 \\

(4)字符串运算符+

符号+能让两个字符串连在一起;

1.print('my name is '+'xiaoyu')

符号*能让字符串按照指定次数打印;

1.print('hello '*10) # 这样就可以打印十个hello

(5)索引的方式

1.str01 = 'abcdefghijklmnopq'2.print(str01[0])  #打印第一个字符3.print(str01[-1])  #打印最后一个字符4.print(str01[5])  #打印第四个字符5.print(str01[-5])  #打印倒数第五个字符6.print(str01[3:10])  #打印第四到第十个字符

求字符串的长度可以用len()

(6)是否包含

1.str01 = 'abc'2.str02 = 'abcdefg'3.print('是否包含:',str01 in str02)4.print('是否不包含:',str01 not in str02)

(7)判断是否相等

1.print(str01 == str02)  #判断字符串是否相等2.print(str01 is str02)  #判断字符串是否是同一个对象

四、 格式化输入输出

1. 百分号形式格式化输出

(1)整数格式化输出占位符

  • %d 十进制输出
  • %o 八进制输出
  • %x 十六进制输出

注意:数值源与输出内容之间没有逗号分隔,这里容易与C语言或者Java混淆 让十进制数100,以八进制输出:

1.num01 = 1002.print('十进制100的八进制数值为%o'%num01)

如果一次输出多个进制转化:

1.num01,num02 = 100,2002.print('八进制输出为:0o%o,0o%o'%(num01,num02))3.print('十六进制输出为:0x%x,0x%x'%(num01,num02))

如果让一个数二进制形式输出,可以直接使用bin()方法;

(2)浮点数格式化输出

  • 保留小数点后面六位有效数字%f
  • 保留小数点后面2位有效数字%.2f
  • 小数点后保留6位有效数字的科学计数法计数%e
  • 小数点后保留2位有效数字的科学计数法计数%.2e
  • 6位数能表示就用6位数,6位数表示不了就用科学计数法%g
  • 保留2位有效数字,2位有效数字表示不了就用科学计数法%.2g

(3)字符串的格式化输出

  • 标准输出%s 右对齐
  • 占位符10位%10s
  • 左对齐占位符10位%-10s
  • 截取3位字符串右对齐%.3s
  • 10位占位符截取两位字符串%10.2s

2. format形式格式化输出

(1) 相对于基本格式化输出采用的%的方法,format()功能更加强大,该函数模块把字符串当成一个模板,通过传入参数进行格式化,并且使用大括号{}作为特殊字符代替%

1.name = 'Ailice'2.gender = '男“3.age = 234.print('姓名:%s 性别:%s 年龄:%d'%(name,gender,age))5.print('姓名:{} 性别:{} 年龄:{}'.format(name,gender,age))

(2)还可以在括号里加标识符,后面要用的时候,就不需要在format函数里添加参数了,可以直接用

1.print('姓名:{0} 性别:{1} 年龄:{2} 学生姓名{0}'.format(name,gender,age))

(3) 标识符除了可以使用数字也可以直接用关键字

1.print('姓名:{name} 性别:{gender} 姓名:{name}'.format(name = name,gender = gender))

(4)Format的进阶用法

forma占位符{}里面使用:对齐方向 占位长度

<默认左对齐

>右对齐

^中间对齐,

1.print('姓名:{:<10}'.format(name))2.print('姓名:{:>10}'.format(name))3.print('姓名:{:^10}'.format(name))

除了对齐之外还可以使用取位数:{:4s}{:.2f}

1.print('{:10.2f}'.format(3.14159)) #十位占位长度,小数点后保留两位有效数字2.print('{:>10.2f}'.format(3.14159)) #十位占位长度,小数点后保留两位有效数字,右对齐

(5)Format对数值的操作

  • 二进制输出b
1.print('二进制打印{0:b} {1:b}'.format(num01,num02))  #0、1是编号
  • 整数转Unicode字符串输出c
1.print('把整数转化成ASCII码: {0:c} {1:c}'.format(65,66))

输出结果:

1.把整数转化成ASCII码: A B
  • 十进制输出d
  • 八进制输出o
  • 十六进制输出x
  • 科学计数法输出e,默认保留小数点后六位
1.print('科学计数法输出:{:.2e}'.format(123.345))

输出结果:

1.科学计数法输出:1.23e+02
  • 一般格式输出g,六位可以表示就用六位表示,六位表示不了就用科学计数法;
  • 数字输出n,当值为整数的时候,和d相同,当值为浮点数是和g相同;
  • 百分号输出%,把数值转化为百分数,小数点后默认保留六位;
1.print('百分号表示:{:.2%}'.format(2))

输出结果:

1.百分号表示:200.00%
  • ,千位分隔符,自动把数值转化为货币千位分割的形式
1.print('千位分隔符:{:,}'.format(102334489))

输出结果:

1.千位分隔符:102,334,489
(0)

相关推荐

  • 【编测编学】零基础学python_05_数字(整数+浮点数)

    在编程中,经常使用数字来记录游戏得分.表示可视化数据.存储Web应用信息等.Python根据数字的用法以不同的方式处理它们.鉴于整数使用起来最简单,下面就先来看看 Python是如何管理它们的.1.  ...

  • python——字符串及练习

    一.字符串的定义 # 定义一个字符串a = 'hello'# 有特殊字符时,需要转译c = 'I\'m a student'# 或者特殊字符用双引号引起来d = "I'm a student ...

  • 小白必学教程:Python变量的定义和使用

    所有的一种编程语言都需要处理数据,如数字.字符串.字符等等,我们可以直接使用数据,或者把它保存到一个变量中,以方便以后使用. 变数(Variable)可看作是一个专门用于在程序中"装入&qu ...

  • UC头条:竟然可以这样学python! !

    本人最近刚刚学习了python,想要了解python的朋友可以跟我一起学哦~ 点击加载图片 先来个最简单的程序 print('Hello World!') 其实python也是支持中文版的,可以直接使 ...

  • Python变量的定义和使用

    Python编程学习圈 昨天 任何编程语言都需要处理数据,比如数字.字符串.字符等,我们可以直接使用数据,也可以将数据保存到变量中,方便以后使用. 变量(Variable)可以看成一个小箱子,专门用来 ...

  • typing库:让你的代码阅读者再也不用猜猜猜

    Python以其简洁的代码而闻名于世.除了缩进之外,代码样式和文档主要取决于编写应用程序的开发人员的习惯,这可能导致一些混乱,产生难以理解的代码.而这主要是因为Python是一种动态类型语言,请看以下 ...

  • ESP8266上的MicroPython入门(4)

    写了几篇文章,但是么有什么条理,想表达得太多.不知道该怎么去说,比较苦恼.昨天又鸽了... 真鸽了!!!其实再此之前还有一篇刷写固件得,我下篇写吧.我考虑到Python得问题,还有写几篇语言基础吧.那 ...

  • Python基础学习笔记(十三)图形化界面Tkinter

    本节知识大纲: 本节知识框架 Python里的图形化界面(GUI)模块主要有Tkinter(python自带).PyQt.wxPython,我们这节主要讲解Tkinter组件: 一.Tkinter介绍 ...

  • Python基础学习笔记(八)异常处理

    本节知识大纲: 本节知识大纲 一.概念 什么是异常? 在程序运行过程中发生错误和意外,这些错误和意外往往不是语法错误. 定义:语法错误不属于异常,因为语法错误没办法让软件正常运行:正确情况下的异常指的 ...

  • Python基础学习笔记(五)集合与字典

    本节知识大纲: 集合 字典 一.Set 集合的概念 1. set 集合的性质 set 集合是一组无序的且不能重复的集合,打印 set 集合时会自动消除重复的元素项: set 集合用大括号表示: set ...

  • Python爬虫学习笔记(三)

    Cookies: 以抓取https://www.yaozh.com/为例 Test1(不使用cookies): 代码: import urllib.request# 1.添加URLurl = &quo ...

  • Rust基础学习笔记(零):复习基本知识

    由于一个学期没有碰Rust,相关知识殆已忘尽.最近各课逐渐停授,余出时间来从基础重温这些知识,也算是对没有写的基础知识的补充.另外这次复习主要参照了Youtube上的Crush Course视频,两个 ...

  • 精益生产(Lean Production)基础学习笔记——第26讲

    第四节 防 错 法 一.防错概述 防错也叫防呆,是指通过设计一种方法或程序,消除产生差错的条件或使出错的机会减到最低,它是一种在作业过程中采用自动作用.报警.标识.分类等手段,使作业人员不特别注意也不 ...

  • Python编程学习笔记(5)

    截止目前我们已经能读取并显示一个指数或者任一一个个股的收盘价及其图形.这种图形到处可以看到,并不稀奇.我们可以利用聚宽的函数获取更多的更有价值的数据. 第二个小目标 画出任一一只个股最近10年的的市盈 ...

  • 信号完整性基础学习笔记——差分(九)

    对于硬件攻城狮来说,差分知识也是需要学习掌握的点,因为差分信号在PCB layout时多数被当做关键信号或高速信号处理,这就需要讨论其信号完整性问题了. 差分传输在两根线上都具有传输信号,两者振幅相同 ...

  • 【学习】噪声与振动控制基础学习笔记(5)

          <噪声与振动控制技术基础>一书,是由盛美萍.王敏庆.孙进才等老师编写的一本噪声与振动的书籍,全书主要分为基础篇.控制篇.运用篇三大部分.其中基础篇利用较少的篇幅,简明扼要地介绍 ...