Python基础学习笔记-05字符串、列表、推导式;老师工位随机分配random.shuffle()、算术运算打分例题;

字符串、列表、推导式

python数据类型:

#可变数据: 列表List、字典Dictionary、集合Set 。
#不可变数据:数值Number(int、float、bool、complex)、字符串string、元组Tuple;

序列:就是一组数据,有它自己的顺序,里面的每个数值都对应一个编号,称为索引;可通过索引查找、访问;

由于字典Dictionary、集合Set没有顺序,所以不能用索引、切片、相加、相乘操作;

编码,就是把实际的文字、数字或其他字符,转换成一一对应的二进制数进行标记和表示,相当于翻译成计算机能看懂和接收的数据;

ASCII编码:

#就是将8位=1个字节的二进制数,对应256种信息或字符;而最高位固定为0,则能表示128个实际的字符;这128个字符,其中的33个字符是控制字符,95个是可显字符;这种对应起来的字符,就是ASCII编码;
#python的默认编码组,是ASCII格式;

中文编码:

#GB2312是针对汉字,而后来创建的GBK也包含了少数民族的字体、繁体字;

Unicode :

#是各国通用的字符编码表,各国语言的编码统一编在这套体系,避免冲突;
#Utf-8、16、32是规定了Unicode 的存储方式,比如Utf-8是把Unicode 字符根据不同的数字大小,编码成1~6个字节;
#Utf-8兼容ASCII,不需要考虑大小端的问题,Utf-16的劣势;
#GBK和Utf-8的区别:
#GBK专门针对中文编码,是双字节的,中英文都是双字节;做中文程序开发用GBK,因为Utf-8编码的中文使用了三字节,比较费空间;
#如果是英文网站开发,用Utf-8,因为是单字节;

字符串 string 编码、解码的含义:

#字符串编码:encode;解码:decode
#encode 就是把字符串编成Python 语言用的格式,是unicode,bytes形式;
#decode 就是把python语言的格式,解码成我们能看懂的字符;
#也就是说,python相当于计算机和人类语言之间的翻译官;python既能把字符串encode成unicode,给计算机用,也能把unicode格式decode成人类看得懂的字符串,给人类用;

字符串的格式化输出方式: % format

#例子:

a=11
b=22
print('我%d岁,你%d岁' % (a,b))

#输出结果: 我11岁,你22岁

print('我是{}岁,你是{}岁'.format(a,b))

#输出结果: 我是11岁,你是22岁

name="Aimy"
age=23
print(f'名字是{name},年龄是{age}')

#输出结果: 名字是Aimy,年龄是23

字符串常见操作:

#find 、index 、count 、replace 、slipt 、capitalize 、title 、startswith 、endswith 、lower 、upper 、ljust 、rjust 、center 、lstrip 、rstrip 、strip 、rfind 、rindex 、partition 、rpatition 、isalpha 、isdigit 、isalnum 、isspace 、

a=3.141592
print('{:.2f}'.format(a))

#运行结果:3.14

列表相关知识:

L1=[1,'a',[1,2,'c'],{'e':'f','as':'df'},'dfsf']
L2=['df',4]
print(L1+L2)
#输出结果:[1, 'a', [1, 2, 'c'], {'e': 'f', 'as': 'df'}, 'dfsf', 'df', 4]
print(L1[3])
#输出结果:{'e':'f','as':'df'}

注意区别:append、extend:

L1=[1,'a',[1,2,'c'],{'e':'f','as':'df'},'dfsf']
L1.append(L2)
print(L1)#输出结果:[1, 'a', [1, 2, 'c'], {'e': 'f', 'as': 'df'}, 'dfsf', ['df', 4]]
L1=[1,'a',[1,2,'c'],{'e':'f','as':'df'},'dfsf']
L1.extend(L2)
print(L1)#输出结果:[1, 'a', [1, 2, 'c'], {'e': 'f', 'as': 'df'}, 'dfsf', 'df', 4]

#插队:insert

a = [1, 2, 3, 4]
a.insert(2, 'b') # 在下标为2的位置插入'b'
print(a)
#运行结果:
[1, 2, 'b', 3, 4]

列表应用例题:随机分配老师工位

#一个学校,有3个办公室,现在有6个老师等待工位分配,请编写程序,完成随机分配
#规则:每个办公室分配2个老师;老师是随机分配的;每个办公室分配的老师要print出来;

import random
inschooloffice=[[],[],[]]
techers=['xiaozhao','xiaoqian','xiaosun','xiaoli','xiaozhou','xiaowu']#赵、钱、孙、李、周、吴

random.shuffle(techers)
print(techers)#输出的结果是随机顺序的techers列表;

运行结果:[‘xiaozhao’, ‘xiaosun’, ‘xiaoqian’, ‘xiaoli’, ‘xiaowu’, ‘xiaozhou’]

i=0
j=0
for m in range (3):
	for k in range (2):
		inschooloffice[i].append(techers[j])
		j+=1
	i+=1
print(inschooloffice)

#运行结果:[[‘xiaozhao’, ‘xiaosun’], [‘xiaoqian’, ‘xiaoli’], [‘xiaowu’, ‘xiaozhou’]]

算术练习:

#要求:
#1.提供10道题,两个数的加减乘除运算(两位数的);根据题目,输入答案;自动判断答案是否正确,进行算术测验;
#2.显示做了几道题、还剩几道题;
#3.题目随机,运算符随机,数字随机;
#4.判断结果是否正确,正确的话分数+1
#5.显示结果,打印分数;
#草稿:
#n1=random.randint(0,100)
#n2=random.randint(1,100)
#ope=‘±*/’
#使用random.choice随机选择运算符;
#输入的计算结果和答案比较,正确,则+1分;
#最后总分数;

import random
ope= ['+', '-', '*', '/']
j=0
for i in range (10):
	n1=random.randint(0,100)
	n2=random.randint(1,100)#当n2做除数时0不能作为分母;
 	cope=random.choice(ope)
	print('题目%d ==> %d %s %d=' % (i+1,n1,cope,n2))
	if cope == '+' :
		comp=n1 + n2
	elif cope == '-' :
		comp=n1 - n2
	elif cope == '*' :
		comp=n1*n2
	else :
		cope == '/' 
		comp2 = n1 / n2
  		#comp =  float(str(comp2).split('.')[0] + '.' + str(comp2).split('.')[1][:2])#小数取两位:用切片的方法;
 		comp  =round(comp2,2)#小数取两位:round方法;
	pers=int(input('请输入答案:'))
	if comp == pers:
		print('答案正确,加一分;')
		j+=1
	else:
		print('答案错误,不得分;')
		print('正确答案是:%s' % comp)
print('你的最终分数是:%d 分' % j)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值