Day1 Day2 Day3 Day4 Day5 ...待续 html
1.1. 咱们写好的.py文件头没有加# -*- coding:utf-8 -*-这样的声明,那么在Windows终端中调用Python2解释器运行时,文件中的中文会显示乱码,为什么?原来咱们Windows终端是以GBK编码来读的,而Python2中不是默认的utf8的编码格式。调用Python3解释器就没问题,有中文就不会出现乱码,由此引出Python3的编码格式。python
1.2. Python3中是没有字符这种编码类型的,默认都是字节编码,也就是没有Unicode这种类型,但本质上它又全是Unicode,只是你看着它是字符编码这种类型。(这句话有点拗口)shell
1.3. Python3的内部机制:utf-8形式写入文件---->utf-8读到内存中转为Unicode的编码形式---->Windows终端以GBK形式去读的时候,Unicode转换为GBK形式给显示出来。(因此说Python3中没编码声明# -*- coding:utf-8 -*-,中文不会乱码)数据结构
1.4. utf-8和GBK编码并不能直接转换,中间要借助Unicode编码做为桥梁,其实现原理能够用下面的图表示:app
1.5. 在文件内部用一种形式的编码格式写和存,但咱们看的时候通常用另外一种编码格式去看的。eclipse
2.1. 学习了用Python语言写一句输出:编辑器
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print('Hello world!')
输出结果:Hello World!
2.2. 学习了Python中变量名的命名规则和注意点函数
2.3. 简单学习了基本数据类型中的数字,字符串学习
2.4. 学习了if条件语句测试
2.5. 简单的while循环
#continue原理
count = 0
while count < 10:
if count == 7: #遇到continue直接
count += 1 #跳到while条件入口
continue #然后面的代码不执行
print(count)
print('------end------')
输出结果:0, 1, 3, 4, 5, 6, 8, 9
------end------
#break原理
count = 0
while count < 10:
count = count + 1
print(count)
break #遇到break直接
print(count) #跳出while循环
print('------end------')
输出结果:1
------end------
2.6. 小练习:用户登陆(三次重试)
count = 0
while count < 3:
user = input('用户名>>>')
pwd = input('密码>>>')
if user == 'jack' and pwd == '123'
print('登陆成功,欢迎使用!')
break
else:
print('用户名或密码错误,请重试!')
count = count + 1 #也能够count += 1
算数运算符
加 | 减 | 乘 | 除 | 乘方 | 取余 | 取商 |
---|---|---|---|---|---|---|
+ | - | * | / | ** | % | // |
逻辑运算符
等于 | 大于 | 小于 | 大于等于 | 小于等于 | 不等于 | 不等于 |
---|---|---|---|---|---|---|
== | > | < | >= | <= | != | <> |
与 | 或 | 非 | ||||
and | or | not |
PS:布尔(bool)逻辑条件判断(与或非等)的顺序:and/or/not没有优先级,有括号先算括号里面的逻辑表达式计算出布尔值,而后从前到后依次计算判断
a, b, c, d = 2, 3.5, True, 5+2j
print(type(a), type(b), type(c), type(d))
输出结果:
<class 'int'> <class 'float'> <class' bool'> <class 'complex'>
Python中的字符串用单引号('***')、双引号("***")、三引号('''***''')或三双引号("""***""")括起来,使用反斜杠(\)转义特殊字符
字符串的截取的语法格式是:变量[头下标:尾下标], 索引值从0开始,-1为从末尾的开始位置
字符串的链接符是加号(+),星号(*)表示复制当前字符串,如'abc' * 3,紧跟的数字表示字符串复制的次数
str = 'abcde'
print (str) # 输出字符串
print (str[0]) # 输出字符串第一个字符
print (str[0:-1]) # 输出第一个到倒数第二个的全部字符
print (str[1:4]) # 输出从第2个开始到第4个的字符
print (str[2:]) # 输出从第三个开始的后的全部字符
print (str * 3) # 输出字符串3次
print (str + "fgh") # 链接字符串
print ('------end------')
输出结果:
abcde
a
abcd
bcd
cde
abcdeabcdeabcde
abcdefgh
------end------
Python 中使用反斜杠(\)转义特殊字符,若是不想让反斜杠转义,能够在字符串前面添加一个r,表示原始字符串
print("abcde\fgh")
输出结果:
abcde
fgh
print(r"abcde\fgh")
输出结果:
abcde\fgh
另外,反斜杠(\)能够做为续行符,表示下一行是上一行的延续。也可使用 """...""" 或者 '''...''' 跨越多行。
注意,Python 没有单独的字符类型,一个字符就是长度为1的字符串。
与 C 字符串不一样的是,Python 字符串不能被改变。向一个索引位置赋值,好比word[0] = 'm'会致使错误。
集合(set)是一个无序不重复元素的序列。
基本功能是进行成员关系测试和删除重复元素。
可使用大括号 { } 或者 set() 函数建立集合。
注意:建立一个空集合必须用 set() 而不是 { },由于 { } 是用来建立一个空字典。
建立格式:
parame = {value1, value2, ...}
或
set(value)
student = {'Alex', 'Jim', 'Tom', 'Mary', 'Alex', 'Jack'}
print(student) # 输出集合,重复的元素被自动去掉
# 成员测试
if('Tom' in student) :
print('Tom 在集合中')
else :
print('Tom 不在集合中')
# set能够进行集合运算
a = set('abcdebaeba')
b = set('ahbcdm')
print(a)
print(a - b) # a和b的差集
print(a | b) # a和b的并集
print(a & b) # a和b的交集
print(a ^ b) # a和b中不一样时存在的元素
print('------end------')
输出结果:
{'Jack', 'Alex', 'Jim', 'Tom', 'Mary'}
Tom 在集合中
{'d', 'a', 'b', 'c', 'e'}
{'e'}
{'d', 'h', 'a', 'b', 'c', 'm', 'e'}
{'d', 'a', 'b', 'c'}
{'e', 'm', 'h'}
------end------
tup1 = () # 空元组
tup2 = (20,) # 一个元素,须要在元素后添加逗号
tup2[0] = 10 # 修改元组元素的操做是非法的
终端错误提示:
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
tup2[0] = 10
TypeError: 'tuple' object does not support item assignment
tuple1 = ( 'abc', 123 , 1.23, 'dashen', 45.6 )
tuple2 = (123, 'dashen')
print (tuple1) # 输出完整元组
print (tuple1[0]) # 输出元组的第1个元素
print (tuple1[1:3]) # 输出从第2个元素开始到第3个元素
print (tuple1[1:]) # 输出从第2个元素开始的全部元素
print (tuple2 * 3) # 输出3次元组
print (tuple1 + tuple2) # 链接两个元组
print('------end------')
输出结果:
('abc', 123, 1.23, 'dashen', 45.6)
abc
(123, 1.23)
(123, 1.23, 'dashen', 45.6)
(123, 'dashen', 123, 'dashen', 123, 'dashen')
('abc', 123, 1.23, 'dashen', 45.6, 123, 'dashen')
------end------
tup1 = () # 空元组
tup2 = (20,) # 一个元素,须要在元素后添加逗号
变量[头下标:尾下标]
list1 = ['abc', 123 , 1.23, 'dashen', 45.6 ]
list2 = [123, 'dashen']
print (list1) # 输出完整列表
print (list1[0]) # 输出元组的第1个元素
print (list1[1:3]) # 输出从第2个元素开始到第3个元素
print (list1[1:]) # 输出从第2个元素开始的全部元素
print (list2 * 3) # 输出3次列表(list2)
print (list1 + list2) # 链接两个列表
print('------end------')
输出结果:
['abc', 123, 1.23, 'dashen', 45.6]
abc
[123, 1.23]
[123, 1.23, 'dashen', 45.6]
[123, 'dashen', 123, 'dashen', 123, 'dashen']
['abc', 123, 1.23, 'dashen', 45.6, 123, 'dashen']
------end------
>>> a = [1, 2, 3, 4, 5, 6]
>>> a[0] = 7
>>> a[2:5] = [8, 9, 10]
>>> a
[7, 2, 8, 9, 10, 6]
>>> a[2:] = [] #将对应的元素值置为[]
>>> a
[7, 2]
>>>
dict1 = {} #建一个空字典
dict1['key1'] = "Python"
dict1[1] = "study"
dict2 = {'name': 'shw', 'age':18, 'home': 'chongqing'}
print (dict1['key1']) # 输出键为 'key1' 的值
print (dict1[1]) # 输出键为 1 的值
print (dict1) # 输出完整的字典dict1
print (dict2) # 输出完整的字典dict2
print (dict2.keys()) # 输出全部键
print (dict2.values()) # 输出全部值
print('------end------')
输出结果:
Python
study
{'key1': 'Python', 1: 'study'}
{'name': 'shw', 'age': 18, 'home': 'chongqing'}
dict_keys(['name', 'age', 'home'])
dict_values(['shw', 18, 'chongqing'])
------end------
#终端命令行运行
>>> dict(name = 'shw', age = 18, home = 'chongqing')
{'name': 'shw', 'age': 18, 'home': 'chongqing'}
>>> dict([('name', 'shw'), ('age', 18), ('home', 'chongqing')])
{'name': 'shw', 'age': 18, 'home': 'chongqing'}
>>> {x: x**3 for x in (2, 3, 4)}
{2: 8, 3: 27, 4: 64}
函数 | 描述 |
---|---|
将x转换为一个整数 |
|
将x转换到一个浮点数 |
|
建立一个复数 |
|
将对象 x 转换为字符串 |
|
将对象 x 转换为表达式字符串 |
|
用来计算在字符串中的有效Python表达式,并返回一个对象 |
|
将序列 s 转换为一个元组 |
|
将序列 s 转换为一个列表 |
|
转换为可变集合 |
|
建立一个字典。d 必须是一个序列 (key,value)元组。 |
|
转换为不可变集合 |
|
将一个整数转换为一个字符 |
|
将一个字符转换为它的整数值 |
|
将一个整数转换为一个十六进制字符串 |
|
将一个整数转换为一个八进制字符串 |