Python是一门易学的面向对象的程序设计语言,可以轻易地完成界面、文件、封装等高阶需求,可移植性好,有非常多功能强大的库与包,如Numpy(数值计算)、SciPy(数学、科学与工程计算)、Matplotlib(数据绘图工具)等等,强大的Python除了可以实现应用程序开发、数据可视化、网站开发以外,近年来机器学习人工智能大火,Python作为首选开发语言更是成为了编程语言中的香饽饽,我们还要什么理由不学习一下呢,好啦~

从今天开始,我们来学习Python的基础知识:

本节知识框架:

本节框架.png

一、程序的结构

Python程序的结构.png
1. 程序的入口main函数

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

# 程序的入口:main函数if __name__ == "__main__":    function()# 要调用的函数

为了让程序具有更强的可读性,需要为程序设置一个入口,这个入口就是main函数。
print()函数,中间可以使用逗号隔开;

print("两数之和是:",add(1,2))
2. 注释

(1) Python里单引号与双引号所具有的功能是一样的,多行注释通常使用三对单引号或者三对双引号;
(2)对与某一句代码的注释通常写在代码的上一行使用#进行注释;
(3)像下面这种注释比较规范

# !/usr/share/pythonprj/# -*- coding:UTF-8 -*-

'''模块介绍:实现加减乘除运算~~~~~~~~~~~~~~~~~~~~~两数相加:add(num01,num02)两束相减:sub(num01,num02)两数相乘:mul(num01,num02)两数相除:del(num01,num02)'''

def add(num01,num02):    # 返回两数之和    return num01 + num02

def sub(num01,num02):    # 返回两数之差    return num01-num02

def mul(num01,num02):    # 返回两数之乘    return  num01*num02

def div(num01,num02):    # 返回两数之商    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)一次性打印多个值

print("tom","jerry","alice","tom")

打印的结果是

tom jerry alice tom

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

print("tom","jerry","alice","tom",sep="==")

这样打印的结果就是

tom==jerry==alice==tom

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

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

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

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

4. Input输入

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

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

这里的eval函数的特点:
a. 只能一次输入多个整数,不能是字符串
b. 输入后自动转化为int类型

开发工具推荐:

如果小伙伴们需要Python基础开发工具pycharm,可以参考我的这篇文章,教你如何安装专业版pycharm

PyCharm学习Python的利器

二、变量

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)布尔类型,True和False
(4)字符串型,可以直接通过取字符串中的数值。

str01 = "xiaoyu"print(str01[0])  #打印的结果就是`x`print(str01[1:3])  #打印的结果就是`ia`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(变量名,(数据类型))

if isinstance(str01,(str)):    print("字符型")
4. 数值类型

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

num01 = 1000print("num01占用的空间:",sys.getsizeof(num01))

(2)八进制0o开头,十六进制0x开头
(3)整形数值常见方法:

  • abs() 绝对值

  • math.fabs()  绝对值

  • math.sqrt()  平方根

  • math.pow(a,b)  a的b次方

  • max()  返回最大值

  • min()  返回最小值

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

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

使用math.ceil()方法,返回数字的上入;
使用math.floor()方法,返回数字的下舍;
使用modf()方法,返回两个数值,前一个数是小数部分、后一个个数是整数部分;

print(math.modf(12.22))  #返回(0.22,12.0)
5.字符串类型

(1)表示方法
字符串数据类型使用单引号双引号都可以;

str01 = 'xiaoyu'str02 = "hello"

(2)长字符串的表示方法
使用续航符\

str03 = "hello nice to meet you"\"my name is xiaoyu"

使用三个双引号或者三个单引号:

str04 = """ hello nice to meet youmy name is xiaoyu"""

使用三个单引号或者双引号可以保留原长字符串的长文本排版格式。
(3)转义字符和取消转义
打印字符串的时候使用斜杠加字母表示一个特殊的功能,\t表示横向制表符,\n表示回车换行,\"可以打印双引号,\\可以打印\

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

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

(4)字符串运算符+
符号+能让两个字符串连在一起;

print("my name is "+"xiaoyu")

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

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

(5)索引的方式

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

求字符串的长度可以用len()
(6)是否包含

str01 = "abc"str02 = "abcdefg"print("是否包含:",str01 in str02)print("是否不包含:",str01 not in str02)

(7)判断是否相等

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

四、 格式化输入输出

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

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

  • %d 十进制输出

  • %o 八进制输出

  • %x 十六进制输出

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

num01 = 100print("十进制100的八进制数值为%o"%num01)

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

num01,num02 = 100,200print("八进制输出为:0o%o,0o%o"%(num01,num02))print("十六进制输出为:0x%x,0x%x"%(num01,num02))

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

(2)浮点数格式化输出

  • 保留小数点后面六位有效数字%f

  • 保留小数点后面2位有效数字%.2f

  • 小数点后保留6位有效数字的科学计数法计数%e

  • 小数点后保留2位有效数字的科学计数法计数%.2e

  • 6位数能表示就用6位数,6位数表示不了就用科学计数法%g

  • 保留2位有效数字,2位有效数字表示不了就用科学计数法%.2g

    图片.png

    图片.png

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

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

图片.png

图片.png
2. format形式格式化输出

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

name = "Ailice"gender = "男“age = 23print("姓名:%s 性别:%s 年龄:%d"%(name,gender,age))print("姓名:{} 性别:{} 年龄:{}".format(name,gender,age))

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

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

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

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

(4)Format的进阶用法
forma占位符{}里面使用:对齐方向 占位长度<默认左对齐,>右对齐,^中间对齐,

print("姓名:{:<10}".format(name))print("姓名:{:>10}".format(name))print("姓名:{:^10}".format(name))

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

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

(5)Format对数值的操作

  • 二进制输出b

print("二进制打印{0:b} {1:b}".format(num01,num02))  #0、1是编号
  • 整数转Unicode字符串输出c

print("把整数转化成ASCII码: {0:c} {1:c}".format(65,66))

输出结果:

把整数转化成ASCII码: A B
  • 十进制输出d

  • 八进制输出o

  • 十六进制输出x

  • 科学计数法输出e,默认保留小数点后六位

print("科学计数法输出:{:.2e}".format(123.345))

输出结果:

科学计数法输出:1.23e+02
  • 一般格式输出g,六位可以表示就用六位表示,六位表示不了就用科学计数法

  • 数字输出n,当值为整数时和d相同,当值为浮点数是和g相同

  • 百分号输出%,把数值转化为百分数,小数点后默认保留六位

print("百分号表示:{:.2%}".format(2))

输出结果:

百分号表示:200.00%
  • ,千位分隔符,自动把数值转化为货币千位分割的形式

print("千位分隔符:{:,}".format(102334489))

输出结果:

千位分隔符:102,334,489

Linux学习笔记(一)使用文本编辑器Vim

Linux学习笔记(二)系统基础操作

Linux学习笔记(三)文件和文本的查看

Linux学习笔记(四)目录操作

Linux学习笔记(五)打包压缩与解压缩

Linux学习笔记(六)用户与用户组

Linux学习笔记(七)文件与目录的权限

Linux学习笔记(八)网络管理

Linux学习笔记(九)软件包管理


·END·

小雨编程

分享有价值的学习教程

O(∩_∩)O哈哈~感谢你的关注

总结了4200字的干货,不点个“在看”吗

pycharm 类型注释_学习Python第一步,变量与数据类型相关推荐

  1. 新手零基础学习Python第一步,搭建开发环境!

    如何在电脑上面搭建Python开发环境?本文会解答这个问题. Python是一门计算机编程语言,通过给计算机下达精确的指令以完成相应的任务或者事情. 人类掌握Python后,就可以利用这个工具告诉计算 ...

  2. pycharm 类型注释_后端开发使用pycharm的技巧

    1.使用说明 首先说明,本文所使用的功能为pycharm专业版所支持,其他版本如社区版,教育版,则不一定支持. 作为一名后端开发,我猜你的桌面上一定打开着一系列的软件,用作开发调试工具,比如navic ...

  3. python基金筛选_入Python第一步,从贴“python爬取基金 筛选股票 ”

    [Python] 纯文本查看 复制代码# selenium请求[基金持仓股票详情页面url]的方法,爬取基金的持仓股票名称.持仓量: def hold_a_position(url): stock_n ...

  4. python变量和列表_自学python第一天——变量和列表

    从零开始,万事开头难,从最基础的开始.学python已有几天,因为有C语言和perl语言的基础,学起python确实是很快,我发现python有很多很好的函数功能,比如: chl = "la ...

  5. 加速度测试什么软件,错题整理神器,喵喵错题APP实现高效学习的第一步

    错题整理神器,喵喵错题APP实现高效学习的第一步 "如何高效的提升学习效率?",关于这一问题,近期我是做了不少功课.因为家里的孩子已经幼升小,但经过一年级上学期半年的学习,孩子的成 ...

  6. 听说写博客是程序猿学习的第一步

    听说写博客是程序猿学习的第一步 对ICT类技术神往已久,尤其是编程和算法.只是苦于自制力有限,始终无法入门.每每看到别人学习编程.解决了问题,我总是很兴奋,憧憬着自己也能像他们一样用代码实现一些自己的 ...

  7. 【SEO学习】第一步:了解搜索引擎基本工作原理和工作流程

    我们常用的搜索引擎一般都是百度.谷歌.搜狗.360.bing这五种,对于搜索引擎的原理和工作流程应该是一样的.今天郑州SEO老冯先给大家说一下百度搜索引擎的工作原理以及抓取过程.这是SEO学习的第一步 ...

  8. Python入门 - 笔记 - 第三章 Python中的变量和数据类型

    第三章 Python中的变量和数据类型 -------------------------------------------------------------------------------- ...

  9. 【Python】Python实战从入门到精通之一 -- 教你深入理解Python中的变量和数据类型

    本文是Python实战–从入门到精通系列的第一篇文章: Python实战从入门到精通之一 – 教你深入理解Python中的变量和数据类型 文章目录 1.变量 1.1 变量命名规则 1.2 变量名称错误 ...

最新文章

  1. javascript高级程序设计(第3版)之《script元素》
  2. [luogu2576 SCOI2010] 幸运数字 (容斥原理)
  3. python增量爬虫_python爬虫Scrapy框架之增量式爬虫
  4. 小明分享|LVGL调试日志
  5. python对象没有属性_Python-对象没有属性E
  6. 基于matlab的回波,基于MATLAB回波信号产生与消除.doc
  7. Android自定义组合布局,Android 流式布局 + 自定义组合控件
  8. 【LeetCode笔记】剑指 Offer 68 - I. 二叉搜索树的最近公共祖先(Java、二叉树、dfs)
  9. [C语言] 单向链表的构建以及翻转算法_图文详解(附双向链表构建代码)
  10. xcode checkout验证错误解决方法
  11. idea导入tomcat源码
  12. C#中另类自定义公式计算 字符串转换为计算公式,并得出计算结果【转载】
  13. Makefile教程一
  14. ofd 文件发票解析
  15. 消息队列——ActiveMQ使用及原理浅析
  16. Python采集豆瓣网电影资源--疑问
  17. 年会抽奖程序,及时安排一波【开源项目】
  18. 练习京东顶部导航条、背景、渐变、按钮练习(雪碧图)、渐变
  19. 摄影测量简答题和作图题
  20. 汽车CAN通信基础知识-CAN数据结构

热门文章

  1. 卷积神经网络minst的verilog实现
  2. java如何arraylist_Java如何使用ArrayList类?
  3. 计算机网络和传统电话网络的最大区别是,传统电话和网络电话有什么区别
  4. 退货表mysql_openant电商-退货 - 数据库设计 - 数据库表结构 - 果创云
  5. 20220201--CTF刷题MISC方向--第5题
  6. 配置mysql读写主从_Mysql主从配置,实现读写分离
  7. linux oracle新建监听,linux 下 oracle图形界面(需配置监听,创建实例)
  8. pipline中替换tag变量
  9. springboot的war和jar包
  10. Jekyll 使用入门