02.28 day03

 print(1 or 3 > 2 and 4 < 5 or 6 and 2 < 7)
#
# while True:
# print(11)
# print(22)
# # break
# # quit()
# exit('网络连接失败!!')
# print(33)
#
# print(44)

# day02作业及默写
# Day2作业及默写
# 1.判断下列逻辑语句的True,False.
# 1)1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
# 2)not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
# 2.求出下列逻辑语句的值。
# 1),8 or 3 and 4 or 2 and 0 or 9 and 7
# 2),0 or 2 and 3 and 4 or 6 and 0 or 3
# 3.下列结果是什么?
# 1)、6 or 2 > 1
# 2)、3 or 2 > 1
# 3)、0 or 5 < 4
# 4)、5 < 4 or 3
# 5)、2 > 1 or 6
# 6)、3 and 2 > 1
# 7)、0 and 3 > 1
# 8)、2 > 1 and 3
# 9)、3 > 1 and 0
# 10)、3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2
# 4.while循环语句基本结构?
# 5.利⽤while语句写出猜⼤⼩的游戏:
# 设定⼀个理想数字⽐如:66,让⽤户输⼊数字,如果⽐66⼤,则显示猜测的结果⼤
# 了;如果⽐66⼩,则显示猜测的结果⼩了;只有等于66,显示猜测结果正确,然后退出
# 循环。
# 6.在5题的基础上进⾏升级:
# 给⽤户三次猜测机会,如果三次之内猜测对了,则显示猜测正确,退出循环,如果
# 三次之内没有猜测正确,则⾃动退出循环,并显示‘太笨了你....’。


# 7.使⽤while循环输出 1 2 3 4 5 6 8 9 10
# count = 0
# while count < 10:
# count += 1
# if count == 7:
# pass
# else:
# print(count)

# count = 0
# while count < 10:
# count += 1
# if count == 7:
# continue
# print(count)


# 8.求1-100的所有数的和
# 9.输出 1-100 内的所有奇数
# 10.输出 1-100 内的所有偶数


# 11.求1-2+3-4+5 ... 99的所有数的和

# s = 0
# count = 1
# while count < 100:
# if count % 2 == 1:
# s += count
# else:
# s -= count
# count += 1
# print(s)




# 12.⽤户登陆(三次输错机会)且每次输错误时显示剩余错误次数(提示:使⽤字符串格
# 式化)

count = 1
while count < 4:
username = input('请输入姓名:')
password = input('请输入密码:')
if username == 'alex' and password == 'sb':
print('登录成功')
break
else:
print('登录失败,剩余%d次,请重新登录' %(3-count))
'''
count 机会
1 2
2 1
3 0
'''






# 13.简述ASCII、Unicode、utf -8编码
# 14.简述位和字节的关系?
# 明⽇默写内容:
# 1. 求1~100所有数的和。
# 2. break continue的含义区别
# 3,Unicode,utf -8,GBK,每个编码英⽂,中⽂,分别⽤⼏个字节表示。






一、int


复制代码
十进制:
    1 23  100  10000
    1.23 1.56  3.1415926

二进制:
 01010101010101

八进制:
    pass

十六进制:
0 1 2 3 4 5 6 7 8 9 A B C D E F
    pass
    16:     1 * 16 + 6 = 22

十进制与二进制的转化。

二进制 -----> 十进制


0010 0111
        1 * 2**0 + 1 * 2**1 + 1* 2**2 + 1 * 2**5 = 39
        

十进制转化成二进制

42   ------> ? 101010
复制代码
View Code

二、bool

复制代码
bool
True False
int str bool
int  str
int  bool

str  bool

str  ---> bool  非空即True
s1 = 'fsdafa'
s1 = '太白'
s1 = ' '
s1 = ''
# print(bool(s1))

bool  ---> str 没有意义
print(str(True),type(str(True)))
复制代码
View Code

 

三、str

python中凡是用引号引起来的都是字符串
1,存储相对少量的数据。
2,描述信息。

3.1:字符串的索引与切片

每个字符都有对应的号码。
通过索引(切片)出来的内容都是字符串类型。

s = 'python字符串的使用'

3.1.1:通过索引(下标) 号牌 找到对应的元素。

复制代码
s1 = s[0]
print(s1,type(s1))

s2 = s[2]
print(s2)

s3 = s[-1]
print(s3)

s4 = s[-2]
print(s4)
复制代码

 

 3.1.2:按照切片找值:顾头不顾尾

 

复制代码
s1 = s[:6] # 从0开始可以省略不写
print(s1)

s2 = s[6:9]
print(s2)

s3 = s[:] # 从头取到尾
print(s3)

s4 = s[6:]
print(s4)
复制代码

 

复制代码
切片+步长
s5 = s[:5:2]
print(s5)


反向取值必须加反向步长。
s6 = s[-1:-4:-1]
print(s6)

s7 = s[-1:-6:-2]
print(s7)


[起始索引: 结尾索引+1: 步长]  # 切片取值
复制代码

 

3.2:字符串的常用操作方法

大前提:对字符串的任何操作都是产生一个新的字符串,与原字符串没有关系
s = 'yifan'
复制代码
1, capitalize           首字母大写,其余字母都小写  **

s1 = s.capitalize()
print(s1)
print(s)

2, upper() 全部变成大写     ***
3, lower()  全部变成小写    ***

s2 = s.upper() print(s2) 举例: code = 'AeRf'.upper() username = input('请输入用户名:') your_code = input('请输入验证码:').upper() # if your_code == 'AERF' or your_code == 'aerf' or .... : if your_code == code: if username =='alex': pass else: print('验证码输入有误')
复制代码

复制代码
4,center   居中可设置填充物  *

s3 = s.center(20)
s3 = s.center(20, '*')
print(s3)


5,swapcase 大小写反转  *
s = 'yifan'
s4 = s.swapcase()
print(s4)


s = 'yifan is*agood77man'

6,title 非字母隔开的每个单词的首字母大写 * s5 = s.title() print(s5)
复制代码
复制代码
7,strip() 
  默认去除字符串两边的空格,换行符,制表符 ***
  只是去除 左边lstrip() 右边 rstrip() s = ' yifan\n' s = '\tyifan\n' print(s) s6 = s.strip() print(s6) name = input('请输入姓名:').strip() if name == 'yifan': print('输入正确') else: print('输入错误') s = 'qw*awle@xyt@' # 可设置去除的字符

s6 = s.strip('qyt@w*') print(s6)
复制代码
复制代码
8,split    ***
str  ---> list
默认按照空格分割,把字符串分割成列表

s = '武大 小潘 西门'
l = s.split()
print(l)


指定字符分割。
s = '武大,小潘,西门'
s = '武大a小潘a西门'
l = s.split(',')
l = s.split('a')
print(l)
s = 'a武大a小潘a西门' print(s.split('a')) 指定分割次数 s = '武大a小潘a西门' rsplit() 从右边开始分割 print(s.split('a',1))
9,join 操作列表时,列表里面的内容必须全部是字符串类型 把列表转成字符串 连接符.join(iterable)

s = 'yifan' s7 = '*'.join(s) s7 = '_'.join(s) s7 = 'sb'.join(s) print(s7)
l1 = ['wusir', 'alex', 'taibai'] s7 = ','.join(l1) print(s7)
复制代码
 
复制代码
10,startswith()    ***
# 判断以什么为开头 可以切片。

11, endswith()

# 判断以什么为开头 可以切片。

s = 'alextaibai' s8 = s.startswith('a') s8 = s.startswith('alex') s8 = s.startswith('alex') s8 = s.startswith('ta', 4, 9) # 顾头不顾尾 print(s8) # find :通过元素获取其索引,找到第一个就返回,找不到会返回-1. # index:通过元素获取其索引,找到第一个就返回,找不到会报错。
s = 'taibai' s9 = s.find('a') s9 = s.find('ai')
可以切片 s9 = s.find('a',2,) print(s9,type(s9)) s9 = s.find('W') s9 = s.index('W') print(s9) 12,replace *** s = 'yifan 是一个很oo的人,非常oo,太oo了' s10 = s.replace('oo', 'yy') s10 = s.replace('oo', 'yy', 2) print(s10)
复制代码

 

复制代码
13,format  ***

s = '我叫{},今年{},性别{}' 方法一: s11 = s.format('一帆', '23', 'man') print(s11) 方法二: s = '我叫{0},今年{1},性别{2},我依然叫{0}{0}{0}' s11 = s.format('一帆', '23', 'man') print(s11) 方法三: s = '我叫{name},今年{age},性别{sex},我依然叫{name}' s11 = s.format(name='一帆', sex='man', age='23') print(s11) 14,is系列:
name='yifan123' print(name.isalnum()) #字符串由字母或数字组成print(name.isalpha()) #字符串只由字母组成 print(name.isdigit()) #字符串只由数字组成 ***

i = '1000a' if i.isdigit(): int(i) else: print('重新输入') s = 'fdjskfldjsafkldjasfl'

15,count 计数:字符串某个字符出现的次数 print(s.count('f'))
复制代码
复制代码
16, 公共方法
len()获取字符串的字符个数,总长度

print(len(s),type(len(s))) s = 'f' s = 'f ' s = ' ' print(s.isspace())
复制代码
 

四:for循环

复制代码
'''   利用while循环 依次打印字符串的每个字符
s = 'dklwfa'
# print(s[100])

len()
d  s[0]
k  s[1]
l  s[2]
...
a  s[count]

'''
# print(s[0])
# print(s[1])
# print(s[5])
s = 'dkfdsafdasfdasfdaslsfa'# 最后一个元素的索引值与总长度有关 index = 0 while index < len(s): print(s[index]) index += 1

for 循环 :有限循环
s = 'dkfdsafdasfdasfdaslsfa' ''' for 变量 in iterable: pass '''

for i in s: print(i) if i == 's': break # break # continue # for else: 用法与while else相同

复制代码

补充知识点:
1.查看一个类中所有的可用方法:
 [x for x in dir(str) if not x.startswith('_')]
 sorted([x for x in dir(str) if not x.startswith('_')])
 
2.str类中find,index的区别
3.判断开始或者结束字符串的注意事项:
 startswith:
 endswith:
 
 判断一个文件,是否是jpg格式的图片?
  filename后缀有可能大写和小写混用,所以要先统一一下。统一成大写或者小写都可以。
  
  伪代码:
  if filename.lower().endswith('.jpg'):
   ok
   
 
4.切片操作总结:
 格式:
  [起始值:结束值:顺序和步长]
  
 1.切片的顺序取决于最后一个参数,正数:正序;负数:倒序,默认是正序
 
 2.正序时起始值在结束值右侧,或者倒序时起始值在结束值左侧,都会返回空字符串。
  s = 'Hello'
  s[3:2:2] -> ''
  s[1:3:-2] -> ''
  即:切片不会跨越字符串的首尾。
 3.正数索引和负数索引可以混用。只要能指到正确的元素即可。
  
  
5.总结str类中涉及到从右侧开始的操作:
 rfind    从右侧查找
 rindex    从右侧查找
 rjust    从右侧对齐
 rstrip    从右侧删除空白字符
 rsplit    从右侧切分
 rpartition   从右侧分组







posted @ 2019-03-06 20:37  星空之主  阅读(168)  评论(0编辑  收藏  举报