python -day4
python -day4
python作业讲解
附加练习题(提示:一步步拆解)
1.想办法打印出jason
l1 = [11,
22,
'kevin',
['tony',
'jerry',
[123,
456,
'jason']
]
]
print(li[3][2][2])
2.想办法打印出大宝贝
d1 = {'name': 'jason',
'others': {'a1': 'heiheihei',
'a2': {'k1': 'hahaha',
'k2': 'hehehe',
'k3': '大宝贝'}
}
}
print(d1['others']['a2']['k3'])
3.想办法打印出run
data = {'username': 'jason',
'hobby': [11,
22,
{'height': 183,
'hobby': ['read',
'run',
'music'
]
}
]
}
print(data['hobby'][2]['hoddy'][1])
基本数据类型布尔值bool
布尔值:true和false
python中数据自带布尔值
布尔值false:0、none、[]、{}、()
布尔值true:除了上面的
布尔值的变量名一般以is开头
is_alive = ture
基本数据类型元组tuple
元组(tuple)与列表类似,不同之处,元组的元素不能修改。元组写在小括号()中,数据值与数据值用逗号(,)隔开可以是任何数据类型。
t1 = (110, 120, 130, 'body')
t2 = (110, 140, 'sex')
print(t1) # 输出完整元组
print(t1[0]) # 输出元组中第一和元素
print(t1[0:3]) # 输出元组中从索引0(包括)到索引3(不包括)结束
print(t1[1:]) # 输出元组从索引1到最后
print(t1*2) # 输出两遍元素
print(t1+t2) # 输出t1和t2元素的集合 重复也输出
print(t1[-1]) #输出从后往前的元素
print(len(t1)) # 输出元素的长度
'''
元素值无法修改但是可以把元组转换成列表更改元素最后再转化成元组
'''
t3 = list(t1)
t3[2] = "1212"
t1 = tuple(t3)
print(t1)
t1 = (1)
t2 = (11.11)
t3 = ('jason')
print(type(t1), type(t2), type(t3)) # <class 'int'> <class 'float'> <class 'str'>
t1 = (1,)
t2 = (11.11,)
t3 = ('jason',)
print(type(t1), type(t2), type(t3)) # <class 'tuple'> <class 'tuple'> <class 'tuple'>
"""
建议:以后在使用可以存放多个数据值的数据类型时 如果里面暂时只有一个数据值 那么也建议你加上逗号
"""
基本数据类型集合set
集合是无序和无索引的集合。在 Python 中,集合用花括号编写。
集合只能用于去重和关系运算。
集合中的数据只能是不可变类型
代码实现
thisset = {"apple", "banana", "cherry"}
print(thisset)
定义空集合与空字典
{} 默认是字典
set() 定义空集合
.add()添加项目
.update()添加多个项目到集合中
.len可以获取项目个数
.remove()或者discard()可以删除元素
.clear()清楚集合
.del彻底删除集合
.union()连接多个集合
用户交互
1获取用户输入
input # 获取用户输入
username = input('输入你的用户名')
password = input( '输入你的密码')
"""
1.先执行input获取用户输入
2.将输入的数据绑定给变量名username
3.以后在程序中就可以使用变量名反复调用用户数据
"""
input 获取的信息会成为字符串
2输出内部信息
1括号中即可以放数据又可以放变量名,支持多个中间用逗号隔开
2print自带换行
换行符:\r\n \n 斜杠与字母组合到一起会产生特殊的含义
3print也可以切换结束符
print(数据,end=’默认是\n’)
python2中
input方法需要用户自己提前指定数据类型 写什么类型就是么类型一致 输入的统一处理成字符串
python2中
print方法有两种使用方式
print 数据值
print(数据值)
格式化输出
提前定义好一些内容,在需要的时候只需要局部修改。
eg:合同、通知书、证书等
代码实现现实生活中用下划线来提示别人内容。
在程序中需要占位符:%s %d
info = '%s您好'
'''单个占位符'''
info = '%s您好'
print(info % 'leilei')
print('%s您好' % 'mingming')
print(info % ('lei1',))
print('%s您好' % ('lei2'))
''' 多个占位符'''
info2 ='姓名:%s 年龄:%d 爱好:%s'
print(info2 % ('leilei', 18, 'rap'))
q1 = info2 % ('leilei', 18, 'rap')
print(q1)
print(type(q1))
print('姓名:%s 年龄:%d 爱好:%s' % ('lei1', 16, 'sing'))
'''注意事项:有几个占位符就需要几个数据值'''
'''不同占位符的区别'''
demo1 = '%s您好 您本月的话费是%s 余额是%s' # %s常见数据类型都支持
demo2 = '%d您好 您本月的话费是%d 余额是%d' # %d只支持数字类型
print('%08d'% 123) # 00000123生成8位数
print('%08d'% 1234324324) # 1234324324多了即赋值的数值
基本运算符
运算符
+ - * / % // **
简化写法
n = 10
n += 1 # n = n + 1
n -= 1 # n = n - 1
n *= 1 # n = n * 1
n /= 1 # n = n / 1
n %= 1 # n = n % 1
n //= 1 # n = n // 1
n **= 1 # n = n ** 1
2.比较运算符
< > <= >= ==(等于号) !=(不等于)
常用赋值符
1链式赋值
t1 = '01'
12 = t1
t3 = t2
# t1=t2=t3
2交叉赋值
m = 100
y = 101
方法1:
z = m
m = y
y = z
print(m, y, z)
方法2:
m, y = y, m
print(m, y)
3解压赋值
n_list = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
#低级写法
name1 = n_list[0]
name2 = n_list[1]
name3 = n_list[2]
name4 = n_list[3]
# 正常写法
name1, name2, name3, name4 = n_list
#解压赋值在使用的时候需要保证左边的变量名与右边的数值个数保持一致
#当需要解压的数据个数较多只需要其中几个是可以用
a, *b = n_list
print(a) # zhangsan
print(b) # ['lisi', 'wangwu', 'zhaoliu']
a, c, *b = n_list
print(a)
print(c)
print(b) # ['wangwu', 'zhaoliu']
a, *b, c = n_list
print(a) # zhangsan
print(b) # ['lisi', 'wangwu']
print(c) # zhaoliu
# 当数据值不准备使用的时候 可以使用下划线作为变量名绑定
a, *_, c = n_list
逻辑运算符
配合条件一起使用
and(与) or(或) not(非)
and连接多个条件成立时结果才成立
print(1 < 10 and 666) # 666
print(1 < 10 and 2 > 1) # false
print(111 and 222) #222
如果and左边的条件是成立的 那么就完全取决于右边的条件。 右边如果直接是数据值 那么结果就是该数据值 如果是含有表达式 则为布尔值。
or 或
or连接多个条件只有一个条件成立则成立
a = 200
b = 66
c = 500
if a > b or a > c:
print("At least one of the conditions is True")
#At least one of the conditions is True
not 非
取反
"""
三者混合使用的时候有优先级之分 但是我们不需要记忆优先级 应该通过代码的形式提前规定好优先级
eg: 先乘除有加减 但是可以使用括号来改变优先级
(3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3 >3)
"""
成员运算符
判断个体在不在群体内
n1 = ['a1', 'a2', 'a3', 'a4', 'a5']
print('a1' in n1) print('a1' not in n1) print('a' in n1) s1 = 'hello world' print('d' in s1)
d1 = {
'username': 'jason',
'pwd': 123
}
print('jason' in d1) # False 字典成员运算只有键参与
print('username' in d1) # True 'username' 'pwd'
身份运算符
id()返回一串数字该数字可以看成内存地址
is | 判断内存地址是否相同 |
---|---|
== | 判断数据值是否相同 |
d1 = [11, 22, 33, 44, 55, 66, 77, 88]
d2 = [11, 22, 33, 44, 55, 66, 77, 88]
print(11 == 12)
print(id(11))
print(id(12))
print(d1 is d2)
i1 = 11
i2 = 22
print(i1 is i2)
s1='leileilei'
s2='leileilei'
print(s1 is s2)
"""
了解
值相同 内存地址可能不同
内存地址相同 值肯定相同
"""
作业
获取用户输入并打印成下列格式
———— info of Jason ———–
Name : Jason
Age : 18
Sex : male
Job : Teacher
—————- end —————–
准备说出下列变量名v绑定的结果
v1 = 1 or 3 #1
v2 = 1 and 3 #3
v3 = 0 and 2 and 1 #0
v4 = 0 and 2 or 1 #1
v5 = 0 and 2 or 1 or 4 #1
v6 = 0 or False and 1 #false