python进阶day7

python进阶之路

Day7

hello world!今日是python学习的第七天,我将会在下面文章对基础语法进行一些介绍,主要为集合与字符串的学习等。

1.集合

1.1 集合的定义

​ 集合是容器型数据类型,将{}作为容器的标志,多个元素用逗号隔开:{元素1,元素2,。。}
​ 集合是可变的,无序的;
​ 元素:不可变的,唯一的
​ 空集合

x = {} # {}是空字典
print(type(x))

y = set() # 空集合
print(type(y),len(y))
      ######          1) 元素是不可变的
# set1 = {12,'abc',[10,20]}  列表是可变的,会报错
          ######           2) 元素是唯一的
set3 = {1,2,3,1,2,2,4}
print(set3) # 自带去重的功能。
names = ['张三','李四','王麻子','张三']
names = set(names)
print(names)
list(names)
print(names)
3) 集合是无序的
print({1,2} == {2,1})
1.2 集合的增删改查
1) 查 - 遍历
set4 = {10,20,78,95}
for x in set4:
	print(x,end = ',')
2) 增
set = {10,20,78,90}

​ a.集合.add(元素) - 在集合中添加元素

set4.add(100)
print(set4)

​ b. 集合.update(序列) - 将序列中所有的元素添加到集合中。

set4.update('abc')
print(set4)
3) 删

​ a. 集合.remove(元素) - 删除指定元素(元素本来不存在会报错)

set4 = {10,20,30,90}
set4.remove(90)
print(set4)

​ b. 集合.discard(元素) - 删除指定元素(如果元素不存在不会报错)

set4 = {10,20,78,90}
set4.discard(78)
print(set4)
      ######            4)  改 - 无法修改元素
1.3 数学集合运算

​ python中的集合支持数学的集合运算。: 子集(>,<,<=,>=)、并集(|)、交集(&)、差集(-)、对称差集(^)

1) 子集
print({100,200,300} > {10,20})
print({10,20,30} > {10,20})
print({10,20,30} >= {10,20})
2) 并集
set1 = {1,2,3,4}
set2 = {4,5,6,7,8}
print(set1 | set2)
3) 交集
set1 = {1,2,3,4}
set2 = {4,5,6,7,8}
print(set1 & set2)
4) 差集
print(set1 - set2)
print(set2 - set1)
5) 对称差集
print(set1 ^ set2)

​ 练习:用三个列表表示三门学科的选课学生姓名(一个学生可以同时选多门课)
​ a. 求选课学生总共有多少人
​ b. 求只选了第一个学科的人的数量和对应的名字
​ c. 求只选了一门学科的学生的数量和对应的名字
​ d. 求只选了两门学科的学生的数量和对应的名字
​ e. 求选了三门学生的学生的数量和对应的名字

python = {'stu1', 'stu2', 'stu5', 'stu8', 'stu10'}
java = {'stu3', 'stu5', 'stu6', 'stu7', 'stu8', 'stu10'}
h5 = {'stu2', 'stu4', 'stu5', 'stu7', 'stu9', 'stu10'}
print('选课学生总共:',python | java | h5,len(python | java | h5))
course1 = (python - java - h5)
print('只选了第一门学科的学生有:',course1,'总计:',len(course1))
p = python - java - h5
j = java - python - h5
h = h5 - java - python
course2 = p | j | h
print('只选了一门学科的学生有:',course2,'总计:',len(course2))
course3 = python & java & h5
print('选了三门学科的学生有:',course3,'总计:',len(course3))
course4 = (python | java | h5) - course2 - course3
print('只选了两门学科的学生有:',course4,'总计:',len(course4))

2. 字符串

1.1 什么是字符串?

​ 字符串是容器型数据类型:以‘’或者“”或者“”“”“”或者‘’‘’‘’作为容器的标志,里面多个字符
​ 特点:不可变的(不支持增删改)、有序的(支持下标操作的)
​ 字符串的元素:字符串的每个基本单元。字符(任何符号都可以)

# 字符串
str1 = 'abc'
str2 = "1213abc"
str3 = '''123123'''
str4 = """456asds5"""
print(str1,str2,str3,str4)

​ ‘’’’’'和“”“”“”引起来的字符串可以直接敲回车换行

1.2 字符

​ python没有字符对应的类型只有字符的概念

1) 普通字符:包含所有的符号,例如:数字、字母、中文、各种图形符号等。
2) 转义字符:和\结合后具有特殊功能和特殊意义的字符,就是转义字符。(转义字符不光是python中的概念)

​ \n - 换行

​ \’ - 一个单引号
​ \" - 一个双引号
​ \ \ - 一个反斜杠
​ \t - 一个水平制表符(相当于恩一次tab键)
​ 注意:任何一个转义字符长度为1
​ \u4位的16进制数 - 编码字符

str1 = '@@@'
str2 = '🐕'
str3 = '123\nabc'
print(str3)
poem = '鹅鹅鹅,\n曲项向天歌,\n白毛浮绿水,\n红掌拨清波'
print(poem)
str5 = '\t123abc'
print(str5)
str6 = '\u4eff356'
print(str6)
print(len(str6))
3) 阻止转义(python特有)

​ python中在字符串的最前面加r/R,可以让这个字符串中所有的转义字符的功能消失

str7 = '\t123\nabc\\400sd\u4eef'
str8 = r'\t123\nabc\\400sd\u4eef'
print(str7,',',str8)
4) 计算机数据存储

​ 计算机在存储数据的时候,只能直接存储数字数据,而且以二进制的形式存储的数字。
​ 位(bit)
​ 1字节(byte) == 8位
​ 1kb == 1024字节
​ 1mb == 1024kb
​ 1gb == 1024mb
​ 1tb == 1024gb

5) 字符编码

​ a. 字符编码
​ 为了能够让计算机存储字符,我们给每一个字符关联一个具体的数字,在需要存储字符的时候就存储字符对应的数字。
​ 每个字符对应的数字就是字符的编码值。

​ b. 编码表
​ 保存字符与数字的一一对应的关系的表就是字符编码表,常用的字符编码表有两种:ASCII码表、Unicode编码表。
​ b.1 ASCII码表:采用一个字节对128个字符进行编码,其中包括常用的英文符号、数字和字母。其他数字的编码在字母的前面,大写字母的编码在小写字母的前面,大写字母与小写字母不连接。
​ 编码:0 - 9:48 ~ 57
​ a - z:97 ~ 122
​ A - Z:65 ~ 90
​ b.2 Unicode: 叫万国码,包含了世界上所有的国家所有的民族所有语言的符号。前128个字符就是ASCII码表中的字符。
​ 其中中文的编码范围是:4e00 ~ 9fa5

​ 编码字符:\u四位的16进制数 (这儿的4位的16进制数就是字母的编码值)

str1 = '\u4e00'
print('\u4e03')

​ chr函数
​ chr(编码值) - 获取编码值对应的字符

print(chr(97))
print(chr(0x4e00))

​ 练习:打印所有的汉字

for i in range(0x4e00,0x9fa5):
   print(chr(i),end = ' ')

​ ord函数
​ ord(字符) - 获取字符的编码值

print(ord('曹'),ord('峰'))
print(hex(ord('曹')),hex(ord('峰')))
6) 获取字符

​ 字符串获取字符与列表获取元素的方法是一样的。

str1 = '人生苦短,我用python'
print(str1[5])

str2 = 'how are\n you!'
print(str2[-4],str2[9])
7) 切片
message = '曾经有一份真挚的爱情摆在我的面前,我没有珍惜。。。'
print(message[2:])
print(message[2:10:3])# 有真爱
print(message[-10:-2:-1])# ''
8) 遍历
message2 = '你以为我以为就是你以为的'
for x in message2:
    print(x,end = '')
message3 = 'you jump, i jump!'
for x,y in enumerate(message3):
    print(x,y)

​ 练习:打印message3中每个字符的编码值

for i in message3:
    print(ord(i),end = ',')

​ 练习2:统计message4中中文字符的个数:

message4 = 'how are you? 我很好! 你呢?'
count = 0
print()
for i in message4:
    if 0x4e00 <= ord(i) <= 0x9fa5:
        count += 1
print('该信息中中文字符的个数为:',count)
9) 加法运算和乘法运算

​ 字符串1 + 字符串2 - 将两个字符串合并产生一个新的字符串

str1 = 'abc' + '123'
print(str1)

​ 字符串1 * N / N * 字符串 - 字符串重复N次产生一个新的字符串

str2 = 'abc' * 3
print(str2)h
10) 比较运算: >,<,>=,<=

​ 字符串比较大小比较的是第一对不相等的字符的编码值的大小。
​ 判断:’a‘ <= x <= ‘z’
​ 判断:‘A’ <= x <= ‘Z’
​ 判断:’a‘ <= x <= ‘z’ or ‘A’ <= x <= ‘Z’
​ 判断:‘0’ <= x <= ‘9’
​ 判断:’\u4e00’ <= x <= ‘\u9fa5’

print('abc' > 'ABC123')

​ 练习:取出字符串中所有的小写字母

str3 = '按键布局的n,基本都是JD的b,我爱的a'
for x in str3:
    if  'a' <= x <= 'z':
        print(x,end = ',')

​ 练习2:将字符串中的所有的小写字母转换成大写字母

new_str = ''
str3 = 'hu23,a后进生lor23可HMp见'
for x in str3:
    if 'a' <= x <= 'z':
        x = chr(ord(x)-32)
    new_str += x
print(new_str)
11) in 和 not in

​ 字符 in 字符串 - 判断字符串中是否有指定的字符
​ 字符串1 in 字符串2 - 判断字符串2中是否包含字符串1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
项目:使用AngularJs编写的简单 益智游戏(附源代码)  这是一个简单的 javascript 项目。这是一个拼图游戏,也包含一个填字游戏。这个游戏玩起来很棒。有两个不同的版本可以玩这个游戏。你也可以玩填字游戏。 关于游戏 这款游戏的玩法很简单。如上所述,它包含拼图和填字游戏。您可以通过移动图像来玩滑动拼图。您还可以选择要在滑动面板中拥有的列数和网格数。 另一个是填字游戏。在这里你只需要找到浏览器左侧提到的那些单词。 要运行此游戏,您需要在系统上安装浏览器。下载并在代码编辑器中打开此项目。然后有一个 index.html 文件可供您修改。在命令提示符中运行该文件,或者您可以直接运行索引文件。使用 Google Chrome 或 FireFox 可获得更好的用户体验。此外,这是一款多人游戏,双方玩家都是人类。 这个游戏包含很多 JavaScript 验证。这个游戏很有趣,如果你能用一点 CSS 修改它,那就更好了。 总的来说,这个项目使用了很多 javascript 和 javascript 库。如果你可以添加一些具有不同颜色选项的级别,那么你一定可以利用其库来提高你的 javascript 技能。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值