写博客的初衷就是希望自己能坚持吧,当作一个小打卡啦~ ps:大神绕路,很初级很白痴
同时记录一些易错和易忘的知识点,以后复习翻着看看。
另:廖雪峰老师的网站刚刚接触,感觉很干货的样子,在这里推荐一下下~
注:本博客参考廖雪峰老师的网站
https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000
day2:
一、数据类型和变量
1.python支持多种数据类型:整数、浮点数、字符串、布尔值、空值。
2.整数的运算时精确的,浮点数运算会四舍五入。
3.转义字符的用法:
>>> print('i\'m ok.')
i'm ok.
>>> print('\\\n\\')
\
\
>>> print(r'\\\n\\') // r' ' 表示关闭转义
\\\n\\
>>> print('''line1
line2
line3''')
line1
line2
line3
4.布尔值可以用and, or, not 运算。
5.空值用None表示,但不等于0,0是有意义的,None只是一个特殊的空值。
6.python是动态语言(可以直接赋值,变量,不需要声明),静态语言需要先定义类型,如:
>>> a = 'abc' //动态语言
>>> int a = 'abc' //静态语言
7.习惯上,用全部大写的变量名表示常量。
PI = 3.14159265359
8.除法与取余
>>> 10/3 // /表示精确除
3.3333333333333335
>>> 9/3
3.0
>>> 10//3 // //表示整除
3
>>> 10%3 //整数取余是整数,浮点数取余是浮点数
1
>>> 10.0%3
1.0
在这里插入代码片
9.Python的整数没有大小限制,Python的浮点数也没有大小限制,但是超出一定范围就直接表示为inf(无限大)。
二、字符串和编码
1.在多语言混合的文本中,显示出来会有乱码。而Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。
2.ASCII编码和Unicode编码的区别:ASCII编码是1个字节,而Unicode编码通常是2个字节。
3.UTF-8编码是一种“可变长编码”。UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果要传输的文本包含大量英文字符,用UTF-8编码就能节省空间。
下面是计算机系统通用的字符编码工作方式:
4.字符转编码:ord() , 编码转字符:chr()
str转bytes:b’ '/encode() ,反之,bytes转str:decode()
>>> ord('A')
65
>>> ord('中')
20013
>>> chr(66)
'B'
>>> chr(25991)
'文'
>>> x=b'ABC'
>>> x.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'
5.len()计算str中的字符数或是bytes中的字节数。
6.由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:
#!/usr/bin/env python3 //告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释
# -*- coding: utf-8 -*- //告诉Python解释器,按照UTF-8编码读取源代码
7.在Python中,采用的格式化方式和C语言是一致的,用%实现:
>>> 'hello, %s'%'world'
'hello, world'
>>> 'hi, %s ,you have $%d.'%('mike',1000000)
'hi, mike ,you have $1000000.'
三、使用List和Tuple
1.list是一种有序可变的表,可以随时添加和删除其中的元素。
>>> list1 = ["a","b","c","d"] //创建列表
>>> list1
['a', 'b', 'c', 'd']
>>> list1[1:3]
['b', 'c']
>>> len(list1)
4
>>> list1[-1]
'd'
>>> list1.append("e") //往list中追加元素到末尾
>>> list1
['a', 'b', 'c', 'd', 'e']
>>> list1.insert(2,"f") //把元素插入到指定的位置
>>> list1
['a', 'b', 'f', 'c', 'd', 'e']
>>> list1.pop() //删除list末尾的元素
'e'
>>> list1
['a', 'b', 'f', 'c', 'd']
>>> list1.pop(3) //删除指定位置的元素
'c'
>>> list1
['a', 'b', 'f', 'd']
>>> list1[2]="g" //把某个元素替换成别的元素,可以直接赋值给对应的索引位置
>>> list1
['a', 'b', 'g', 'd']
2.另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改.
因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。
>>> tuple1=(1,2) //tuple的定义
>>> tuple1
(1, 2)
四、条件判断
1.if \else \elif
2.注:input()返回的值是str,用 int(input(…))转化后才可进行数值运算。
下面举个栗子
# -*- coding: utf-8 -*-
height = input('please input your height:')
weight = input('please input your weight:')
h=float(height)
w=float(weight)
bmi=w/pow(h,2)
print('你的BMI指数为:%.2f,你的体重属于:'% bmi)
if bmi<=18.5:
print("过轻")
elif bmi<=25 and bmi>18.5:
print("正常")
elif bmi<=28 and bmi>25:
print("过重")
elif bmi<=32 and bmi>28:
print("肥胖")
elif bmi>32:
print("严重肥胖")
五、循环
1.Python的循环有两种,一种是for…in循环,依次把list或tuple中的每个元素迭代出来。
//计算1+2+...+100的值
# -*- coding: utf-8 -*-
sum = 0
for x in range(101):
sum = sum + x
print(sum)
2.第二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环。
//计算100内所有奇数之和
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)
3.在循环中,break语句可以提前退出循环。也可以通过continue语句,跳过当前的这次循环,直接开始下一次循环。
注:不要滥用break和continue语句。break和continue会造成代码执行逻辑分叉过多,容易出错。大多数循环并不需要用到break和continue语句。
六、使用dict和set
1.dict,字典,使用键-值(key-value)存储,具有极快的查找速度。
>>> d={'mic':95,'bob':75,'tracy':85} //初始化字典dict
>>> d
{'mic': 95, 'bob': 75, 'tracy': 85}
>>> d['mic'] //通过key查找
95
>>> d['adam']=67 //通过key加入值
>>> d['adam']
67
>>> 'bob' in d //通过in判断key是否存在
True
>>> 'mike' in d
False
>>> d.get('mike',-1) //通过get判断
-1
>>> d.pop('bob') //删除一个{key,value}
75
>>> d
{'mic': 95, 'tracy': 85, 'adam': 67}
2.set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
>>> s=set([1,2,3]) //要创建一个set,需要提供一个list作为输入集合
>>> s
{1, 2, 3}
注: 传入的参数[1, 2, 3]是一个list,而显示的{1, 2, 3}只是告诉你这个set内部有1,2,3这3个元素,显示的顺序也不表示set是有序的。
>>> s=set([1,1,2,2,3,3]) //set可看做是无序和无重复元素的集合
>>> s
{1, 2, 3}
>>> s.add(4) //添加元素
>>> s
{1, 2, 3, 4}
>>> s.remove(4) //删除元素
>>> s
{1, 2, 3}
>>> s1=set([1,2,3]) //两个集合可以做数学意义上交并集合运算
>>> s2=set([2,3,4])
>>> s1&s2
{2, 3}
>>> s1|s2
{1, 2, 3, 4}