格式化输入和运算符
1.基本数据类型
一、字典型dict
每个键与值必须用冒号隔开,每对用逗号分割,整体放在花括号中。键必须独一无二,但值则不必;值可以取任何数据类型,但必须是不可变的,如字符串,数或元组。
如果我们需要用一个变量记录多个值的情况下,列表型数据类型可以帮我们完成,但是列表型有一个缺陷就是无法明确的标明数据的指向。这就要用到字典类型,字典类型是用key:value形式来存储数据。(#K是对V的描述性性质的信息一般都是字符串,V是真实的数据类似于变量的值可以是任意数据类型)
使用方法:
dict = {'name': 'Zara', 'age': 7, 'class': 'First'};
print "dict['name']: ", dict['name'];
print "dict['age']: ", dict['age'];
补充:字典是不支持索引取值的,因为字典内部是无序的。字典可以对键进行修改和补充。
二、集合set
由一个或多个确定的元素所构成的整体叫做集合。
集合中的元素是不可重复的,因为集合有去重功能;
集合的的修改方法是 update() 方法,可以修改集合中的元素;
两个集合求并集可以使用union()方法,或者使用 | 符号连接两个集合(多个元素则可以使用update()方法);
#定义空集合
两个集合求交集可以使用intersection()方法(多个集合可以使用intersection_update()方法);
两个集合求差集可以使用difference方法,例如s1.difference(s2)表示s1有但s2没有的元素,反之亦然(多个集合用difference_update()方法)
s = set()
s = {} #注意这是定义字典的
# 初始化一个集合
s = {1,2,3}
s1 = {(1,2,3),100,'abc'} #元组是可以被hash的,所以可以作为集合的元素
print(s1) #输出:{'abc', 100, (1, 2, 3)}
s2 = {[1,2,3],(1,2,3),100} #列表是不可hash的,所以输出会报错
print(s2) #报错
s3 = set([1,2,3,4])
print(s3) #输出:{1, 2, 3, 4}
三、元组tuple
Python的元组与列表类似,不同之处在于元组的元素不能修改;元组使用小括号(),列表使用方括号[] 元组一般存储一些只能看不能改的数据
使用方法:tup1 = ('physics', 'chemistry', 1997, 2000);
#tup1[0]: physics
print "tup1[0]: ", tup1[0]
#tup1[1:5]: ('chemistry', 1997)
print "tup1[1:5]: ", tup1[1:3]
四、布尔值bool
bool数据类型的值是:True和False,显示的是True和False,其行为跟整数1和0是相同的。
布尔类型常用于条件表达式中,用于控制循环结构和分支结构。
对于bool值可以进行逻辑运算(and,or,not)。
1,Python的真值规则
数字0、0.0、空字符串、空值None、空对象(空的元组,空的集合,空的列表)都是False;其他值都是True布尔and和or运算符返回对象,而不是值True或False
2.布尔and 和 or运算符总会返回对象,而不是值True或False
布尔and 和 or运算符总会返回对象,不是运算符左侧的对象,就是右侧的对象。对于or运算符而言,Python会由左至右求操作对象,然后返回第一个为真的操作对象。or运算符是短路计算,Python会在其找到第一个True的操作数就停止。如果没有遇到True的对象,那么返回最后一个假的对象。
!
2.与用户交互
1.什么是用户交互:
程序等待用户输入一些数据,程序执行完毕反馈信息。
# 在python3中input功能会等待用户的输入,用户输入任何内容,都存成字符串类型,然后赋值给等号左边的变量名
在python3中使用input,input会将用户输入的如何内容存为字符串;在python中分为两种,raw input和input,raw input和python3中的input一样,会将用户输入的任何内容存为字符串,而input则要求用户输入明确的类型,输入什么类型就是什么类型。
使用方法:
输入:
>>> username=input('请输入您的用户名:')
请输入您的用户名:jack # username = "jack"
>>> password=input('请输入您的密码:')
请输入您的密码:123 # password = "123"
输出:
>>> print('hello world') # 只输出一个值
hello world
>>> print('first','second','third') # 一次性输出多个值,值用逗号隔开
first second third
3.格式化输出
如何格式化输出字符串呢,例如你好XX,你的额度是xx
,其中xx
的变量,我们无法预知,这个时候就需要格式化输出,和C语言
一样,我们可以使用占位符%?
,其中?
代表不同的字符,例如%s
代表字符串,%d
代表十进制整数,%f
代表浮点数,例如
name = "Potato"
b = 100
print("你好%s,你的额度是%d" % (name,b) )
#name将替换%s的位置,b将替换%d的位置,字符串后的%用来说明是哪些变量要替换前面的占位符,当只有一个变量的时候,可以省略括号
如果不知道数据类型的话,用%s即转为字符串进行输出会比较稳妥
使用方法:
username = input('username>>>:')
age = input('age>>>:')
print('my name is %s my age is %s' % (username, age))
4.运算符
Python中运算符分为:
- 算术运算符:主要用于两个对象算数计算(加减乘除等运算)
- 比较(关系)运算符:用于两个对象比较(判断是否相等、大于等运算)
- 赋值运算符:用于对象的赋值,将运算符右边的值(或计算结果)赋给运算符左边。
- 逻辑运算符:用于逻辑运算(与或非等)。
- 位运算符: 对Python对象进行按照存储的bit操作。
- 成员运算符:判断一个对象是否包含另一个对象。
- 身份运算符:判断是不是引用自一个对象
一、算数运算符(乘(*) 除(/) 整除(//) 取余(%) 等于(==))
假设变量: a=10,b=20,a + b 输出结果 30
>>> a = 10
>>> b = 15
>>> a + b
25
二、比较(关系)运算符
假设变量: a=10,b=20,(a == b) 返回 False。
>>> a = 2
>>> b = 10
>>> a == b
False
三、赋值运算符
a=10,b=20,c = a + b 将 a + b 的运算结果赋值为 c
>>> a = 10
>>> a
10
>>> a = 10 + 5
>>> a
15
四、逻辑运算符
and(满足所有条件)、or(满足一个条件即可)、not(说反话)
布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。
>>> a = 0
>>> b = 1
>>> a and b
0
>>> a = 'a'
>>> a and b
1
六、成员运算符
in(如果在指定的序列中找到值返回 True,否则返回 False。) not in(如果在指定的序列中没有找到值返回 True,否则返回 False。)
x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
>>> a = 'a'
>>> b = 'cba'
>>> a in b
True
>>> b = list(b)
>>> b
['c', 'b', 'a']
>>> a in b
True
七、身份运算符
is 与 == 区别:
is 用于判断两个变量引用对象是否为同一个(同一块内存空间), == 用于判断引用变量的值是否相等。
>>> a = [1, 2, 3]
>>> b = a
>>> b is a
True
>>> b == a
True
>>> b = a[:]
>>> b is a
False
>>> b == a
True