第二章----python基础
概要:python是一种计算机编程语言,有自己的一套语法,编译器或者解释器负责把符合语法的程序代码翻译成CPU能识别的机器码,然后执行。python使用缩进来组织代码块,Python程序中大小写是敏感的。#是单行注释;
第一节:数据类型和变量
1.数据类型:计算机不仅可以处理数值,而且可以处理文本,图形,音频,视频,网页等数据,处理不同的数据需要定义不同的数据类型。我的理解呢,就是,对于不同的数据,计算机是不知道的,用户直接定义好,那么计算机可以直接识别出来现在处理的数据是什么样的数据,其实数据类型就是起到这个作用。
2.数据类型分类
整数:python可以处理任意大小的整数,写法和数学中的写法一毛一样,也可以用十六进制表示。
浮点数:其实就是小数,小数位数太多所以引入E,比如1.23e8相当于:1.23*10的8次方,整数在内存中存储是精确的,浮点数是不精确的。
字符串:是以单引号或者双引号括起来的任意文本。print(r'字符串内容')前边加上r表示该字符串不用转义。
print('''line1
line2
line3''')字符串内部有换行,则可以使用这种形式。
布尔值:一个布尔值只有True和False两种。布尔值可以用在and or not运算中,布尔值经常用于条件判断中。
空值:空值是一个特殊的值,用None表示,不能理解成0,0是有意义的,None是一个特殊的空值。
3.变量定义:必须以大小写英文,字母,数字和_组合,且不能以数字开头。python中同一个变量可以赋给不同的数据类型值,python是动态性语言。
理解变量在计算机内存中的表示:a = 'abc';python解释器做了两件事:第一,在内存中创建了'abc'字符串,第二,在内存中创建了变量a,并将它指向了字符串'abc'
4.常量:不能改变的变量,用全部大写的变量名来表示常量,
5.python中的除法:第一种:'/'除法的结果是浮点数,第二种:'//'除法的结果是整数。
注解:python的整数和浮点数都没有大小限制。
第二节:字符串和编码
首先:字符串也是一种数据类型,但是字符串涉及到一种编码问题,各国的语言不通,设计的编码也就不同。ASCII码,和Unicode编码的主要区别是:前者是一个字节表示一个字符,后者是两个字节表示一个字符。--可变长的字符编码UTF-8;计算机内存中的字符编码都是Unicode编码.
其次:在py3中字符串是以Unicode编码的,py的字符串支持多语言。ord()函数获取某个字符的整数表示。比如:ord('a') ,chr()函数把编码转换成对应的字符,比如:chr('66').
最后:python的字符串中一个字符对应于多个字节,要想通过网络传输,或者保存到磁盘中,必须把str转变为以字节为单位的bytes,比如x = b'abc'每个字符只占用一个字节。
明确encode()和decode()的用法;获取字符包含多少个字符用len(str)函数。计算字符串的字节数:len(b'str')
字符串格式化:通过'%'来格式化字符串
第三节:使用list和tuple
第一:list
定义:list也是一种数据类型,-->是列表类型,并且是一种有序集合,可以随时添加和删除其中的元素。自己理解:其实就是PHP中的数组吧。
举例:classmates = ['a','b','c'];变量classmates是一个list类型。获取list元素的个数用len()函数来处理。
访问:通过索引的形式访问list中的元素,比如:classmates[0]、classmates[1], 取最后一个元素方法:classmates[-1],倒数第二个:classmates[-2]
注解:超过list的索引的时候,会报IndexError错误,所以要记住索引的最大值为len(classmates)-1
特点:list是一个可变的有序表,可以给list中追加元素到末尾。
方法:
追加一个元素到末尾,classmates.append('d');
在指定的元素之后插入一个元素:classmates.insert(0,'z');
删除末尾的元素:classmates.pop()删除的结果是返回删除的元素值。
删除list中指定元素的值:classmates.pop(索引值) 举例:classmates.pop(0)
替换某个元素的值:classmates[索引值] = '值' 举例:classmates[0] = 'e'
注解:list中的元素也可以是不同的数据类型;list中可以还有list,(其实就相当于一维数组中还有一个一维数组)访问方式一样;list可以为空;
第二:tuple
定义:是一个有序列表,叫做元组,tuple中的元素值一旦初始化就不能在更改。和list不同的是:没有那些修改插入,删除的方法。
语法:classmates = ('a','b','c')
特殊:可变的tuple,也就是说tuple中可以包含有list,list其实是可以改变的。要理解这中方式。
总结:list和tuple是py中的内置的有序集合,list是可变的,tuple是不可变的。
第四节:条件判断
1.定义:计算机之所以可以自动化执行任务,是因为计算机自己可以进行条件判断。
2.语法:if <条件判断1>:
<语句执行1>
elif <条件判断2>:
<语句执行2>
else:
<语句执行3>
举例:
age = 28
if age >= 18:#条件判断
print('your age is',age)#执行语句块
print('adult')
elif age >= 6:
print('your age is',age)
print('teenager')
else:
print('your age is',age)
print('kids')
简写形式:if x:
print('语句') 只要x是非零数值,非空字符串,非空list都是为真。
3.特点:执行从上到下执行,只要有一个条件符合,就执行其中的语句,如果都不符合,就执行else中的语句,和其他语言的条件判断思想基本一致。
4.讨论input();input返回的是字符串型,不能和整数直接比较,需要进行转换才能和整数比较。
birth = int(input('birth:'))#将用户输入的值转换成整型
if birth <= 2000
print('00前')
else:
print('00后')
举例:
height = 1.75
weight = 80.5
bmi = weight/(height*height)
print(bmi)
if bmi <= 18.5:
print('您的体重过轻,请补充营养')
elif bmi>=18.5 and bmi<=25:
print('您的体重正常,恭喜了')
elif bmi>=25 and bmi<=28:
print('您的体重过重')
elif bmi>=28 and bmi<=32:
print('您的体重肥胖')
else:
print('您过于肥胖,请节制')
第五节:循环
第一种:for x in....... 解释:把每个元素带入到x中,然后执行缩进块的语句
举例:
names = ['a','b','c']
for name in names:
print(name)
举例:实现1--10之间的整数之和
sum = 0
for x in [1,2,3,4,5,6,7,8,9,10]:
sum += x
print(sum)
函数:range()生成一个整数序列。
举例:实现0--100之间的整数之和
sum = 0
for x in range(101):
sum += x
print(sum)
第二种:while循环
定义:只要条件满足,就不断循环,条件不满足就退出循环。
举例:实现0到100之间的奇数之和
sum = 0
n = 99
while n >0:
sum += n
n = n-2
print(sum)
解释:在循环内部中,n不断自减,直到n变为-1时,条件不再满足,在执行print(sum)语句。一定要明确循环的开始条件,结束条件。
举例:通过不同的循环方法实现,打印出'hello name'
第一种方法:for x in .....
L= ['a','b','c']
for name in L:
print('hello',name)
第二种方法:while循环
L = ['a','b','c']
i = 0
while i < len(L):
name = L[i]
print('Hello',name)
i = i+1
break:在循环中,通过break语句可以提前退出循环,-----一般是通过条件来判断,当满足该条件时,执行break语句,跳出当前循环,不在执行以下的代码。
举例:打印出1--100的数字
n = 1
while n < 101:
print(n)
n = n+1
通过break控制上述代码,只打印出1--10的数字
n = 1
while n < 101:
if n>10:
break
print(n)
n = n+1
continue:在循环过程中,可以通过continue来跳过当前循环,直接进入下一次循环
n = 1
while n < 11:
n = n + 1
if n%2 == 0:
continue
print(n) 输出奇数
小结:break和continue都是控制循环输出的,break是直接跳出循环,结束循环;而continue是结束当前一次的循环直接执行下一次的循环。
使用场景:比如要取到某些特殊的值。通常配合if语句一起使用。
第六节:使用dict和set
第一个:dict
定义:Python内置的字典,其实就是key--value键值对,具有很快的查找速度
语法:d = {'key1':value1,'key2':value2,.........}
访问:d['key1'] 添加一个元素:d['key'] = value;当dict中没有这个key时,会报错。删除一个元素:dict.pop('key')相应 的value值也会删除
d = {'a':56,'b':45}
d['c'] = 76
print(d)
注解:当多个key相同的时候,取最后一个值;dict内部的存放顺序和key放入的顺序无关;dict中的key是不可变对象。
避免key出现错误:第一种:'key' in dict 若存在返回True,否则返回False;第二种:使用dict的get方法,比如:d.get('key',指定的值)
list和dict的比较:
1.dict的查找和插入非常快,不会随着key的增加而变慢
2.dict需要占用大量的内存,内存浪费严重
而list:1.查找和插入的时间随着key的增多时间增加;2.占用空间少,内存浪费的少。
第二个:set
定义:十一组key的集合,但是不存储value,因为key不能重复,所以,在set中,没有重复的key.重复的元素在set中会被过滤掉。
语法:s = set([list])
方法:添加 s.add() 删除:s.remove()
set和dict的根本区别:set不存储value.
注解:
字符串是不可变对象,list是可变的。a = 'abc',变量a中存储的是abc字符串对象。
对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。
小结:明确dict和set的区别,以及python的基础知识要打牢。
第二章----python基础的更多相关文章
- 第二章 python基础(一)
第一节 Python文件类型 源代码 Python源代码的文件以“py”为扩展名,由Python程序解释,不需要编译 字节代码 Python源文件经编译后生成的扩展名为“pyc”的文件 编译方法 im ...
- 第二章 Python基础语法
2.1 环境的安装 解释器:py2 / py3 (环境变量) 开发工具:pycharm 2.2 编码 编码基础 ascii ,英文.符号,8位为一个东西,2**8 unicode ,万国码,可以表示所 ...
- 第二章 python基础(二)
第九节 函数 函数就是完成特定功能的一个语句组,这组语句可以作为一个单位使用,并且给它取一个名字. 可以通过函数名在程序的不同地方多次执行(这通常叫做函数调用),却不需要在所有地方都重复编写这些语句. ...
- 第二章 python基础(三)
第十六节 MySQLdb win64位安装python-mysqldb1.2.5 ubuntu下安装MySQLdb sudo apt-get install python-MySQLdb 导入MySQ ...
- 第二章Python入门
第二章 Python入门 2.1.简介 Python是著名的"龟叔"(Guido van Rossum)在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言 Pytho ...
- java面向对象编程——第二章 java基础语法
第二章 java基础语法 1. java关键字 abstract boolean break byte case catch char class const continue default do ...
- [Python笔记][第二章Python序列-复杂的数据结构]
2016/1/27学习内容 第二章 Python序列-复杂的数据结构 堆 import heapq #添加元素进堆 heapq.heappush(heap,n) #小根堆堆顶 heapq.heappo ...
- [Python笔记][第二章Python序列-tuple,dict,set]
2016/1/27学习内容 第二章 Python序列-tuple tuple创建的tips a_tuple=('a',),要这样创建,而不是a_tuple=('a'),后者是一个创建了一个字符 tup ...
- [python笔记][第二章Python序列-list]
2016/1/27学习内容 第二章 Python序列-list list常用操作 list.append(x) list.extend(L) list.insert(index,x) list.rem ...
随机推荐
- solr6.6 配置自带中文分词
1.配置solrconfig.xml solr的自带中文分词包在solr-6.6.0\contrib\analysis-extras\lucene-libs下 修改solrconfig.xml增加 & ...
- 关于 iOS 证书,你必须了解的知识
收录待用,修改转载已取得腾讯云授权 最新腾讯云技术公开课直播,提问腾讯W3C代表,如何从小白成为技术专家?点击了解活动详情. 作者 |陈泽滨 编辑 | 顾乡 从事iOS开发几年,越来越发现,我们的开发 ...
- 使用JavaScript和Canvas实现下雪动画效果
该下雪动画效果使用了HTML5中Canvas画布实现,其中涉及了物理学中曲线运动的相关知识与运算. index.html <!DOCTYPE html> <html lang=&qu ...
- 转: Linux与JVM的内存关系分析
Linux与JVM的内存关系分析 引言 在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约600m,Linux自身使 ...
- 转:从零开始做app需要做的事情列表
https://qdan.me/list/VaXl7N8emfv1ayWg 从零开始做App的Bootstrap 做一个App,需要很多东西. 不定期更新. 团队 工欲善其事,必先利其器. 需求管理 ...
- riched32.dll riched20.dll msftedit.dll 解析
摘要: 本文对Rich Edit控件底层消息机制进行了讲解,以期读者对Windows平台下的Rich Edit控件有一个更深入的认识,同时对于使用Win32 SDK进行开发的人员具有一定参考价值.因为 ...
- MAC下安装Mysql数据库
步骤一:安装 登录官网:mysql数据库下载官网下载合适的版本 下载完成后,在Finder的侧边栏为下载的目录中,找到下载完成的文档. 单击下载文档,单击MySQL-5.6.22-osx10.8-x8 ...
- 高仿手机QQ音乐之——Android带进度条的开关
最新版的手机QQ音乐体验确实不错,发现首页播放按钮能够显示歌曲当前进度条.认为挺有新意.效果例如以下: 自己琢磨了下.能够用自己定义组件来实现,试着做了一下.效果例如以下: 整理了下思路.大概设计流程 ...
- 通过浏览器查看nginx服务器状态配置方法
通过浏览器查看nginx服务器状态配置方法 投稿:junjie 字体:[增加 减小] 类型:转载 这篇文章主要介绍了通过浏览器查看nginx服务器状态配置方法,本文讲解开启nginx-status的配 ...
- WP8学习笔记:如何在页面显示前自动转向到其他页面
在本次修练开始之前,我们除了预设的 MainPage页面外,也另外新增了一个 Login页面,如下图示: MainPage.xaml页面长这样 Login.xaml页面长这样 因为我们的需求是要求使用 ...