一.基本数据类型
基本数据类型之列表
- 本质
可以存储多个数据,并且可以从中获取多个数据。 - 书写格式
用中括号括起来,括号内可存多个数据,其中数据值和数据类型可以是任何数据类型。
eg:
list = [{"name": '李智强'},18,[21,22,23]]
- 关键字:list
- 索引取值
当我们在列表中去取某一个或者多个值时,注意数字是从“0”开始
当我们从列表中只取一个数值的时候:
list = [111,222,333,444,555]
print(list[1])
输出结果:
D:\python.3.6.4\python36.exe "D:/pythonProject/pythonProject_day3/04 今日作业.py"
222
Process finished with exit code 0
当我们从列表中只取两个及以上数值的时候:
list = [111,222,333,444,555]
print(list[1],list[3])
输出结果:
D:\python.3.6.4\python36.exe "D:/pythonProject/pythonProject_day3/04 今日作业.py"
222 444
Process finished with exit code 0
当一组列表出现了多种数据类型的时候:
方法一:多步骤
list = [11, 11.11, 'jason', [11, 22, 33]]
list1 = list[3]
print(list1[1])
方法二:一步到位
list = [11, 11.11, 'jason', [11, 22, 33]]
print(list[3][1])
输出的结果都是:
D:\python.3.6.4\python36.exe "D:/pythonProject/pythonProject_day3/04 今日作业.py"
22
Process finished with exit code 0
基本数据类型之字典
- 本质
可以存储多个数据,并且可以从中获取多个数据,并且对于数据有一定的解释。 - 书写格式
用大“{}”括号括起来,括号内可存多个数据,其中数据值和数据类型是K:V对应关系。
K:对于V的描述信息,一般为字符串。
V:真实的数据值,可以是任何数据类型。
eg:
list_dict = {"name":"李智强","age":18,"job":"程序员"}
- 关键字:dict
- 取值
eg:取’age’的值
方法一:多步骤完成
data = {'name': 'jason','others': [111,222,{'a1': '嘿嘿','a2': '哈哈','a3': [123,{'name': 'jason1','age': 18}]}]}
#取大字典中的值
print(data['others'])
#再获取其中列表的值
l1 = data['others']
print(l1[2])
#获取小字典的值
l2 = l1[2]
print(l2['a3'])
#获取小字典中小小字典中的值
l3 = l2['a3']
print(l3[1])
#获取小小字典中'age'的值
l4 = l3[1]
print(l4['age'])
方法二:一步到位
data = {'name': 'jason','others': [111,222,{'a1': '嘿嘿','a2': '哈哈','a3': [123,{'name': 'jason1','age': 18}]}]}
print(data['others'][2]['a3'][1]['age'])
输出结果:
D:\python.3.6.4\python36.exe "D:/pythonProject/pythonProject_day3/04 今日作业.py"
18
Process finished with exit code 0
基本数据类型之布尔值
- 本质
用来对事物进行判断,是否正确,是否合理(总共就两种) - 两种基本使用
- is_right = True #真正,正确,是,对
- is_delect = False #否,错误
注:不同的语言环境也有不同的使用方式。
-
介绍
其实布尔值看似挺简单的,简单。但是布尔值运用最为频繁。
布尔值一般是is开头 #君子协议(不易改变) -
布尔值类型转换
布尔值为Flase的数据有:
0,none,空字符串,空列表,空字典 …
其他的数据都是True类型 -
关键字:is
基本数据类型之元组
- 本质
其实元组与列表挺像的,可以存储多个数据,并且可以从中获取多个数据。但是元组不能更改数据(只能看不能改)!!! - 作用
用于一些不更改的数据存储 - 基本使用
t1 = (11,22,33)#可以是任何数据类型
- 关键字:tuple
- 与列表对比
列表中存储的数据可以更改,但元组能数据不可更改(“只能看不能改”)
列表:
t1 = [11,22,33]
t2 = 12
t1[0] = t2
print(t1)
输出结果:
D:\python.3.6.4\python36.exe "D:/pythonProject/pythonProject_day3/04 今日作业.py"
[12, 22, 33]
Process finished with exit code 0
元组:
t1 = (11,22,33)
t2 = 12
t1[0] = t2
print(t1)
输出结果:
D:\python.3.6.4\python36.exe "D:/pythonProject/pythonProject_day3/04 今日作业.py"
Traceback (most recent call last):
File "D:/pythonProject/pythonProject_day3/04 今日作业.py", line 28, in <module>
t1[0] = t2
TypeError: 'tuple' object does not support item assignment
Process finished with exit code 1
基本数据类型之集合
- 本质
集合只用于去重and关系运算。
去重:自动去除重复的数据。
关系运算:判断两个集合之间数据的关系。 - 基本使用
s1 = {1,2,3,4,5,6}
- 关键字:set
- 如何创建一个空集合?
d1 = {}
s1 = {}
print(type(d1))
print(type(s1)) # 当括号里没有数据时数据类型默认为字典
ss = set()
print(type(ss))
与用户交互
- 输入
计算机接受信息
关键字:input
eg:
input('请输入用户名:')
- 输出
计算机向外界传输信息
关键字:print
name = input('请输入用户名:')
print(name)
输出结果:
D:\python.3.6.4\python36.exe "D:/pythonProject/pythonProject_day3/04 今日作业.py"
请输入用户名:李智强
李智强
Process finished with exit code 0
name1 = 'jason'
name2 = 'tony'
print(name1,name2)
格式化输出
eg:
方法一:
info = "name:%s,age:%s"
print(info %("李智强",18))
输出结果:
D:\python.3.6.4\python36.exe "D:/pythonProject/pythonProject_day3/04 今日作业.py"
name:李智强,age:18
Process finished with exit code 0
方法二:
print("name:%s,age:%s" %("李智强",18))
输出结果:
D:\python.3.6.4\python36.exe "D:/pythonProject/pythonProject_day3/04 今日作业.py"
name:李智强,age:18
Process finished with exit code 0
占位符:%s和%d
区别:
%s:支持所有数据类型的替换(运用的最多)
%d:只允许数字占位
eg:
info = "name:%d,age:%d"
print(info %("李智强",18))
输出结果:
D:\python.3.6.4\python36.exe "D:/pythonProject/pythonProject_day3/04 今日作业.py"
Traceback (most recent call last):
File "D:/pythonProject/pythonProject_day3/04 今日作业.py", line 51, in <module>
print(info %("李智强",18))
TypeError: %d format: a number is required, not str
Process finished with exit code 1
当需要占位的时数字时
info = "weight:%d,age:%d"
print(info %(71.1,18))
输出结果:
D:\python.3.6.4\python36.exe "D:/pythonProject/pythonProject_day3/04 今日作业.py"
weight:71,age:18
Process finished with exit code 0
基本运算符
- 基础
加:+
减:-
乘:*
除:/
整除://
取模(余数):%
幂指数:**(次方)
- 变种情况
x = 10
x = x + 100 >>> x +=100
x = x - 5 >>> x -= 5
x = x * 5 >>> x *= 5
x = x / 2 >>> x /= 2
注:初学者不建议使用后面的一种方法(多敲代码)
- 比较运算符
== 等于
!= 不等于
多种赋值符号
- 解压赋值
赋值符号的左边一定要有至少两个及以上的名字
并且赋值符号左边的名字一定要等于右边数值的个数(多了和少了都不行)
eg:
当赋值符号两边不等时
name1,name2 = 'jason'
print(name1,name2)
输出结果:(报错)
D:\python.3.6.4\python36.exe "D:/pythonProject/pythonProject_day3/04 今日作业.py"
Traceback (most recent call last):
File "D:/pythonProject/pythonProject_day3/04 今日作业.py", line 53, in <module>
name1,name2 = 'jason'
ValueError: too many values to unpack (expected 2)
Process finished with exit code 1
当赋值符号两边个数相等时
name1,name2 = 'jason','tony'
print(name1,name2)
输出结果:
D:\python.3.6.4\python36.exe "D:/pythonProject/pythonProject_day3/04 今日作业.py"
jason tony
Process finished with exit code 0
eg2:
name_list = {'jason','tony','tom'}
a,b = name_list
print(a,b)
输出结果:(报错)
D:\python.3.6.4\python36.exe "D:/pythonProject/pythonProject_day3/04 今日作业.py"
Traceback (most recent call last):
File "D:/pythonProject/pythonProject_day3/04 今日作业.py", line 54, in <module>
a,b = name_list
ValueError: too many values to unpack (expected 2)
Process finished with exit code 1
- 特殊情况
eg:
l1 = [11,22,33,44,55,66,77,88,99]
a,b,*c = l1
print(a,b) # 11 22
print(c) # [33,44,55,66,77,88,99]
输出结果:
D:\python.3.6.4\python36.exe "D:/pythonProject/pythonProject_day3/04 今日作业.py"
11 22
Process finished with exit code 0
- 链式赋值
x = y = z =10 - 交叉赋值
m = 10
n = 20
m,n = n,m
print(n) # 10
print(m) # 20
输出结果:
D:\python.3.6.4\python36.exe "D:/pythonProject/pythonProject_day3/04 今日作业.py"
10
20
Process finished with exit code 0
今日作业:
- 作业一
title = "%s info of %s %s"
print(title %('-'*10,"李智强",'-'*10))
info = "Name:%s\nAge:%s\nGender:%s\nJob:%s"
print(info %("李智强",21,"男","程序员"))
print('-'*15,'end','-'*15)
- 作业二
当在python2解释器其中运用输入代码input时会出现以下报错:
SyntaxError: Non-ASCII character '\xe8' in file E:/pythonProject/Day03��2.7��������/2.7������.py on line 2, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
通过百度搜索,我们应该在首行代码加:
#encoding=utf-8
输入:
在python2中当我们用input作为输出指令时:
name = input("请输入用户名:")
print name
当我们在输入框中输入“李智强”时,会报出以下错误:
Traceback (most recent call last):
File "D:/pythonProject/pythonProject_day3��ҵ/01 python2.py", line 2, in <module>
name = input("请输入用户名:")
File "<string>", line 1
李智强
^
SyntaxError: invalid syntax
这时我们应该采用raw_input作为输入指令,而在python3中我们使用input作为输入指令。
输出:
在python2和python3未发现明显区别
name = "李智强"
print name
print(name)
结果:
D:\Python27\python2.exe "D:/pythonProject/pythonProject_day3作业/01 python2.py"
李智强
李智强
Process finished with exit code 0