python学习第三天

今天学习内容有:

Python基本数据类型:

Int  è  整数,主要用来来进行数学运算

Str  è  字符串,可以保存少量数据并进行相应的操作

Bool è  判断真假,True,False

List  è  存储大量数据,用【】表示

Tuple è  元组,不可以发生改变用()表示

Dict  è  字典,保存键值对,一样可以保存大量数据

Set   è  集合,保存大量数据。不可以重复。其实就是不保存value的dict

 

一、整数

整数可进行的操作:  bit_length().计算整数在内存中占用的二进制码长度

print(a.bit_length()) # 返回的是x的二进制长度
# 二进制: 0 1  逢二进一
# 十进制 : 0-9  逢十进一
# 八进制: 0-7 8进一
# 十六进制: 0-F  16进一
# 所有的内置函数都是直接调用的
# print("哈哈") #  就是打印
# 所有的方法都是对象xxxx.方法()

例:

a = int(input('请输入一个数字:'))
print(a.bit_length())

>>>请输入一个数字:3

>>>2

 

二、布尔值(bool)

取值只有True,False.     bool只没有操作

转换问题:

结论1:x转换成y类型   y(x)

结论2:所有的空都是False。 非空都是True

# False: 0,'',[],{},set(),tuple(),None(真空)

bs = False
print(type(bs))
>>><class 'bool'>
bs = False
a = int(bs)
print(a)
print(type(a))

>>>0

>>><class 'int'>

三、字符串

把字符连成串串. 在python中⽤用', ", ''', """引起来的内容被称为字符串串.

1.切片和索引

索引:索引就是下标,切记下表从0开始

字符串中每个字符的位置顺序
索引从0开始. 程序员数数从0开始
s[索引] 获取到字符串s中的索引位置的数据
s = '文能提笔安天下,武能上马定乾坤'
print(s[0])
print(s[2])
print(s[5])
print(s[10])

>>>文

>>>提

>>>天

>>>上

切片

s[start: end: step]从start开始到end结束。 但是取不到end. 每step个取一个

s[start: end: step] step如果是正数 从左到右, 如果是负数就是从右到左,默认的方向是从左到右
# 总结:
# s[start: end: step]
# start: 
起始位置
# end:  结束为止。取不到
# step:  步长。 每隔xx个取1个。 默认是1 如果step-1 从右往左取值
例;
s = '文能提笔安天下,武能上马定乾坤'
print(s[0:2])
print(s[-9:-1])
print(s[:4])
print(s[7:])
print(s[0:6:2])
>>>文能
>>>下,武能上马定乾
>>>文能提笔
>>>,武能上马定乾坤
>>>文提安

2.字符串操作

总结:

1.upper() 全部转化成大写字母
2.strip() 去掉左右两段的空白(空格,\n, \t)
3.replace(old, new) 字符串替换
4.split() 切割. 得到的结果是一个列表.
5.startswith() 判断是否以xxx开头
6.find() 查找。如果找到了。 返回索引。如果找不到返回-1
7.len() 内置函数,求字符串长度

切记, 字符串串是不可变的对象, 所以任何操作对原字符串串是不会有任何影响的

.capitalize()  è  首字母大写

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

>>>Kjhuhiubnbuibmjo

 

.lower()  è  全部转化成小写

s = "jJKnjiKloJoJJlldSDHGHS"
s2 = s.lower()
print(s2)

>>>jjknjiklojojjlldsdhghs

 

.upper()  è  全部转化成大写,(需要记忆,当需要忽略大小写,将字符串转换成大写)

s = "jJKnjiKloJoJJlldSDHGHS"
s3 = s.upper()
print(s3)

>>>JJKNJIKLOJOJJLLDSDHGHS

 

.swapcase()  è  大小写互相转换

s = "jJKnjiKloJoJJlldSDHGHS"
s4 = s.swapcase()
print(s4)

>>>JjkNJIkLOjOjjLLDsdhghs

 

.caseflod()  è  转换成小写。和lower的区别:lower()对某些字符支持不够好,而caseflod()对所有字母都有效

s = "jJKnjiKloJoJJlldSDHGHS"
print(s.casefold())

>>>jjknjiklojojjlldsdhghs

 

.title()  è  每个被特殊字符隔开的字母首字母大写(中文也算特殊字符)

s = "jkl_jkli 你好 jkl kjsklmv"
print(s.title())

>>>Jkl_Jkli 你好 Jkl Kjsklmv

 

.strip()  è 默认去掉左右两端的空白,空白包括:空格 换行符\n  制表符\t  (也可以去掉左右两端指定的内容)    (lstrip(),去掉左边的空格;rstrip(),去掉右边的空格)

s = '\n    你好   \n'
print(s)
print(s.strip())

>>> 

>>>    你好  

>>> 

>>>你好

 

.replace() è 字符串替换    .replace(old,new,n) n表示替换个数

s = ' old boy euan '
print(s.replace('o','s'))
print(s.replace('o','s',1))

>>>sld bsy euan

>>> sld boy euan

 

.center(5,’*’) è  拉长成5,并把原字符放中间,其余位置补*

s = 'Euan'
print(s.center(10,'*'))
print(s.center(10,' '))

>>>***Euan***

>>>   Euan

 

.expandttabs() è  更改\t的长度,

s = 'Euan\tlike....'
print(s)
print(s.expandtabs(10))
>>>Euan like....
>>>Euan      like....
 
.split(“ ”,)  è 切割 (如果贴着边切。 结果里一定有空字符串
s = '兰州_惠州_苏州_徐州'
print(s.split('_'))
print(s.split(''))

>>>['兰州', '惠州', '苏州', '徐州']

>>>['兰', '_惠', '_苏', '_徐', '']

 

字符串占位

 

:

d = "我叫%s, 我来自%s, 我喜欢%s" % ("sylar", "黑龙江", "赛利亚")
s2 = "我叫{}, 我来自{}, 我喜欢{}".format("sylar","黑龙江", "赛利亚" )
s3 = "我叫{2}, 我来自{1}, 我喜欢{0}".format("sylar","黑龙江", "赛利亚" )
s4 = "我叫{name}, 我来自{address}, 我喜欢{hobby}".format(name="sylar", hobby = "赛利亚" ,address="黑龙江")
print(d)
print(s2)
print(s3)
print(s4)
>>>我叫sylar, 我来自黑龙江, 我喜欢赛利亚
>>>我叫sylar, 我来自黑龙江, 我喜欢赛利亚
>>>我叫赛利亚, 我来自黑龙江, 我喜欢sylar
>>>我叫sylar, 我来自黑龙江, 我喜欢赛利亚

 

.count()  è  计数

s = "jJKnjiKloJoJJlldSDHGHS"
print(s.count('H'))

>>>2

 

Find()  è  查找。如果找到了。 返回索引。如果找不到返回-1

Index() è  索引。如果找到了 返回索引。 如果找不到。 报错

s = "jJKnjiKloJoJJlldSDHGHS"
print(s.find('0'))
print(s.find('o'))
print(s.index('o'))
print(s.index('0'))

>>>-1

>>>8

>>>>8

>>>>ValueError: substring not found

 

Len()  è  求长度,此为内置函数,判断字符串长度

num = input('请输入')
b = len(num)
print(b)

>>>请输入a

>>>1

 

For循环

for 变量 in 可迭代对象:
   
循环体循环体(break,continue)
else:
 

 

posted @ 2018-10-19 19:36  EuanXu  阅读(336)  评论(0编辑  收藏  举报