学习python的第三天 基础数据类型、for循环
一、今日大纲
- 基础数据类型总览
- int
- bool
- str
- 索引、切片
- 常用操作方法
- for循环
二、昨日内容以及作业讲解
-
pycharm的简单使用
-
while 循环
-
结构
-
结束方式
- 命令
- break:直接终止循环
- continue:终止本次循环,继续下一次循环
- while else: 只要没有被break终止,则继续执行else内容
-
格式化输出str : 让字符串某些位置变成动态可变的,可传入的
- % s str digit | int r
- %% 转义%
-
编码的初识:
-
编码:密码本:二进制与文字的对应关系.
-
ASCII:最早的密码本:二进制与英文字母,数字,特殊字符的对应关系
-
GBK国标:英文1个字节,中文2个字节
- 英文字母,数字,特殊字符 用的ASCII
- 中文自己编写的
-
Unicode:万国码(兼容性高,他与任何的密码本都有映射关系)
-
UTF-8:
01100001 使用ASCII
01100001 01100001 欧洲
01100001 01100001 01100001 中文
-
-
-
-
作业
-
猜数字大小,打了提示数字大了小了提示数字小了,三次机会
num = 29 set = 1 while True : in_num = int(input ('请猜猜数字大小:')) if in_num > num and set < 3 : print ('你猜的数字太大了!') elif in_num< num and set <3 : print ('你猜的数字太小了!') elif set < 3 : print ('恭喜你猜对了') break else : print('你大概是个傻子,次数被你用完了') break set = set + 1 -
while 循环输出-10
set = 0 while True : set = set + 1 if set > 10 : set = 1 print (set)- 计算1-2+3.......100
set_1 = 0 set_2 = 0 while set_1 < 100 : set_1= set_1 + 1 if set_1 % 2 == 0: set_2 = set_2 - set_1 else : set_2 = set_2 + set_1 print (set_2)- 输入用户名,密码三次机会 ,使用标准化输出
-
count = 1
while count <= 3 :
username = input('用户名:')
password = input('密码:')
if username == 'alex' and password == '123' :
print ('登录成功')
else :
print('用户名或者密码错误,还剩%s次机会' % (3-count))
count += 1
# 三、具体内容
-
基础数据类型总览
- 10202020 12 012 int 数字 +-*/ 等等
- ‘今天吃了没’ str 字符串 +- *int(和数字相乘) 切片,其他操作方法
- True False bool 判断真假
- [12,ture,'alex',[123]] list 列表 存储大量数据
- (12,ture,'alex',[123]) tuple 存储大量数据 不可改变里面的元素。
- {‘name’:'太白金星'} dict 存储大量关联型数据,查询速度非常快
- set 交集,并集差集
-
int
-
主要用于计算 +-*/
-
不同的进制之间的转换。10进制、2进制。
#bit_kenth 有效的二进制长度 i = 4 print (i.bit_length()) #3 i = 5 print (i.bit_length()) #3 i = 42 print (i.bit_length()) #6 -
bool str int 转换
-
bool ----> int
True 1 False 0
非0即True 0是False
-
str <----> int
s1 = 10 int(s1) :必须是数字组成
i = 100 str(i) -
str bool
s1 = 'sadasd'
print (bool(s1))
非空字符串即Ture
-
-
切片
按索引:s1 [index]
按照切片: s1[start_index:end_index+1]
按照切片步长:s1[start_index:end_index+1:2]
反向按照切片步长:s1[start_index:end_index后延一位:-2]
思考题:能不能倒序全取出来
-
-
字符串
-
字符串的常用操作方法
- upper(字符全部大写,中文不变) lower(字符全部小写,中文不变)
username = input ('用户名:') password = input('密码:') code = 'Qwea' your_code = input('请输入验证码:不区分大小写') if your_code.upper() == code.upper() : if username == 'taibai' and password == '123': print ('登陆成功') else : print('用户名密码错误') else : print('验证码错误')- startswith(以...为开始) endswith(以...为结束)
s = 'taiBai' print (s.startswith('t')) print (s.startswith('taiBai'))-
replace(替换)
msg = 'alex 很nb,alex是老男孩教育的创始人之一,alex长得很帅' #msg1 = msg.replace('alex','taibai') 默认全部替换 msg1 = msg.replace('alex','taibai',2) print (msg1) -
strip(删除 如果有想删除的字符可以加在括号里面,从前往后,从后往前删除,但是不会去除中间的; \t 制表符 ; \n 换行符)
s4 = '\n taibai\t' s5 = s4.strip() print (s5) -
split 分割 非常重要
- 分割:默认按照空格分割,返回一个列表;以什么分割就将什么写入括号内
s6 = '太白 女神 吴超' l = s6.split() print (l) # ['太白', '女神', '吴超'] -
join 联合 非常好用
s1 = 'alex' s2 = '+'.join(s1) print (s2) #前提:列表里面的元素必须是字符串 l1 = ['太白','女神','吴超'] s3 = ':'.join(l1) print (s3) -
count 计数,数出字符串的个数
s8 = 'asdaosdhoh108yh0dfhi20qh80fg1yh03hf[0o' print (s8.count('a')) -
format :格式化输出
- 第一种用法
msg = '我叫{}今年{}性别{}'.format('大壮',25,'男') print(msg)- 第二种用法
msg = '我叫{0}今年{1}性别{2},我依然叫{0}'.format('大壮',25,'男') print(msg)- 第三种用法
msg = '我叫{name}今年{age}性别{sex}'.format(age=25,sex='男',name='大壮') print(msg) -
is系列
ame = '100 一' print (name.isalnum()) #字符串由字母或数字组成 print(name.isalpha())#字符串由字母组成 print(name.isdecimal())#字符串只由十进制组成s1 = input("请输入您的金额:") if s1.isdecimal(): print (int(s1)) else : print ('傻吊,你输入错误')
-
-
for循环
len() 获取对象的字符的总个数
s1 = '''君不见黄河之水天上来,奔流到海不复回。 君不见高堂明镜悲白发,朝如青丝暮成雪。 人生得意须尽欢,莫使金樽空对月。 天生我材必有用,千金散尽还复来。 烹羊宰牛且为乐,会须一饮三百杯。 岑夫子,丹丘生,将进酒,杯莫停。 与君歌一曲,请君为我倾耳听。 钟鼓馔玉不足贵,但愿长醉不复醒。 古来圣贤皆寂寞,惟有饮者留其名。 陈王昔时宴平乐,斗酒十千恣欢谑。 主人何为言少钱,径须沽取对君酌。 五花马、千金裘,呼儿将出换美酒,与尔同销万古愁''' index = 0 while index < len(s1): print (s1[index]) index +=1#for循环 ''' for 变量 in iterable: pass ''' s1 = '老男孩教育最好的讲师:太白' for i in s1 : print (i)

浙公网安备 33010602011771号