Python基础Day3

一、基础数据类型  总览

整型 int:用于计算,计数,运算等。

字符串 str:用于少量数据的从存储,便于操作。例如:个人信息,公司密钥等

布尔值 bool:True , False 两种状态,机器反馈给用户的对错信息

列表 list:[ ] 用于存储大量数据,能存储各种数据类型

元组 tuple:( ) 只读列表,不能修改

字典 dict:{ 键 :值 } 存储大量关联型数据

集合 set:{ }   关系测试,多个集合之间的测试

 

二、int 整型 

bin()      #把十进制数转换为二进制

bit.length()  #获取十进制数的最少二进制位数

a = 99
print(bin(a))                   # 十进制数a转换为了二进制数
print(a.bit_length())           # 获取十进制数a的最少二进制位数

#结果
0b1100011
7

 

三、数据类型之间的转换

int --- > str (整型转换为字符串)   

格式:str(int)

b = str(1)
print(b,type(b))

#结果
1 <class 'str'>

 

str --- > int (字符串转换为整型)    

格式:int(str)    # 默认会将字符串的所有空格去除

s1 = "123"
b1 = int(s1)
print(b1,type(b1))

# 结果
123 <class 'int'>
s1 = "           3          "
print(int(s1))                          # str转换为int,默认会将字符串的空格去除

# 结果
3

 

 

 

bool --- > int (布尔值转换为整型)   

格式:int(bool)

True == 1

False == 0

c1 = int(True)
print(c1,type(c1))
c2 = int(False)
print(c2,type(c2))

# 结果
1 <class 'int'>
0 <class 'int'>

 

int --- > bool (整型转换为布尔值)

格式: bool(int)

非0 == True

0 == False

d1 = bool(3)
print(d1,type(d1))
d2 = bool(0)
print(d2,type(d2))

# 结果
True <class 'bool'>
False <class 'bool'>

 

str --- > bool  (字符串转换为布尔值)

格式:

bool(str)  

空字符串 == False

非空字符串 == True

s1 = ""
e1 = bool(s1)
print(e1,type(e1))

s2 = 'abc'
e2 = bool(s2)
print(e2,type(e2))

# 结果
False <class 'bool'>
True <class 'bool'>

 

bool ---> str (布尔值转换为字符串)  转换无意义

格式:

str(bool)

f1 = str(True)
f2 = str(False)
print(f1,type(f1))
print(f2,type(f2))

# 结果
True <class 'str'>
False <class 'str'>

 

四、str 字符串

字符串是以字符排序组成的,有序的。

第一个字符的索引是0,最后一位索引是-1

对字符串操作形成的都是一个新的字符串,与原来字符串无关

 

① 按索引取值,取出来的都是一个字符形成新的字符串

s1 = 'python3.6'
print(s1[0])
print(s1[3])
print(s1[-1])

# 结果
p
h
6

 

②按切片取值(顾头不顾尾)

s2 = 'My learn python3.6'
print(s2[0:8])
print(s2[:8])
print(s2[8:])
print(s2[-9:])
print(s2[-9:-3])

# 结果
My learn
My learn
 python3.6
python3.6
python

 

③按切片+步长 (每次的跨度必须一样)
如果想倒序取值,加反向步长(负号)

s3 = 'My name is XiaoMing.'
print(s3[:7:2])
print(s3[-1:-10:-1])        # 倒序取值,加反向步长

# 结果
M ae
.gniMoaiX

 

五、字符串的常用方法

 

lower()    # 全部字母变成小写

upper()    # 全部字母变成大写

用途:验证码的验证

string1 = 'goodBoy'
print(string1.lower())
print(string1.upper())

# 结果
goodboy
GOODBOY

 

startswith(字符串)    # 判断字符串是否以XXX开头,返回bool值

endswith(字符串)     # 判断字符串是否以XXX结尾,返回bool值

string1 = 'good Boy'
print(string1.startswith('a'))
print(string1.endswith('Y'))

# 结果
False
False

 

find(元素,开始的索引,结束的索引)  # 通过元素找到第一个该元素所在字符串的索引,返回的是int类型,找不到返回-1

rfind(元素,开始的索引,结束的索引)   # 从字符串的尾部开始查找该元素的第一个索引,返回的是int类型,找不到返回-1

开始的索引和结束的索引可不填

str1 = 'Welcome to Hongkong'
print(str1.find('o'))           # 通过元素找到第一个该元素所在字符串的索引,返回int类型
print(str1.find('o',8,18))
print(str1.find('z'))           # 找不到该元素的索引返回-1
print(str1.rfind('o'))

# 结果
4
9
-1
16

 

 

index(元素,开始的索引,结束的索引)    # 通过元素找到第一个该元素所在字符串的索引,返回的是int类型,找不到则报错

rindex (元素,开始的索引,结束的索引)    # 找从字符串的尾部开始查找该元素的第一个索引,返回的是int类型,找不到则报错

# 通过元素找到第一个该元素所在字符串的索引,返回的是int类型,找不到则报错

str2 = 'Welcome to Shenzhen'
print(str2.index('o'))           # 通过元素找到第一个该元素所在字符串的索引,返回int类型
print(str2.index('o',8,15))
print(str2.rindex('n'))
print(str2.index('a'))           # 找不到该元素的索引则报错

# 结果
Traceback (most recent call last):
4
9
18
  File "D:/Day3/day3review.py", line 118, in <module>
    print(str2.index('a'))           # 找不到该元素的索引则报错
ValueError: substring not found

 

 

strip()    # 去除字符串前后的自定义字符,默认是去除空格(包括制表符\t、换行符\n)

lstrip()    # 去除字符串首部的自定义字符,不填是默认空格

rstrip()    # 去除字符串尾部的自定义字符,不填是默认空格

用途:一般用在input()方法后面

str3 = '\tHello World      \n'
print(str3)
print(str3.strip())
print(str3.lstrip())
print(str3.rstrip())

# 结果
    Hello World      

Hello World
Hello World      

    Hello World

 

split(字符,最大次数)   # 将字符串分割成列表(str ---> list),默认是按空格分割

str1 = 'Welcome to Beijing'
print(str1.split())
print(str1.split('o',1))
print(str1.split('o'))
print(str1.rsplit('i',1))

# 结果
['Welcome', 'to', 'Beijing']
['Welc', 'me to Beijing']
['Welc', 'me t', ' Beijing']
['Welcome to Beij', 'ng']

如果字符串首部有空格,默认是不分割; 

s1 = ' happy day'
print(s1.split())
print(s1.split(' '))


# 结果
['happy', 'day']
['', 'happy', 'day']

 

 

join 以自定制连接符,将可迭代对象的元素连接起来

列表转换为str的方式

str1 = 'London'
print('-'.join(str1))

# 结果
L-o-n-d-o-n

 

replace(旧字符串,新字符串,替换次数)    # 将字符串替换为另外一个字符串,可设置替换的次数

str1 = "I'm going to Beijing today"
print(str1.replace('Beijing','Shanghai'))       # 将北京替换为上海

# 结果
I'm going to Shanghai today

 

其他方法:

str1 = 'guang ZhOu'
print(str1.capitalize())            # 将字符串的首字母大写,后面的字母全部小写
print(str1.center(60,'-'))          # 将字符串居中,前后填充是自定义的字符
print(str1.swapcase())              # 将字母的大小写翻转
print(str1.title())                 # 将非字母隔开的每个部分的首字母大写
print(str1.count('u'))              # 统计元素在字符串的个数
print(len(str1))                    # 获取字符串的长度
# 结果
Guang zhou
-------------------------guang ZhOu-------------------------
GUANG zHoU
Guang Zhou
2
10

 

字符串的  is判断:

str1 = ' Hello Boy hahahaha123haha789haha'
print(str1.isalnum())           # 判断字符串是否由字母或者数字组成
print(str1.isalnum())           # 判断字符串是否全部由字母组成
print(str1.isdigit())           # 判断字符串是否全部由数字组成

# 结果
False
False
False

 

六、格式化输出    format

{} 不能包含空格

方式一:

str1 = "我叫{},今年{}岁,已经工作了{}年".format('王大锤',30,5)
print(str1)

# 结果
我叫王大锤,今年30岁,已经工作了5年

 

方式二:(好处:可以重复使用)

str2 = '我叫{1},今年{2}岁,来自{0},我一直在{0}工作'.format('深圳','王大锤',30)
print(str2)

# 结果
我叫王大锤,今年30岁,来自深圳,我一直在深圳工作

 

方式三:

str3 = '我是{name},来自{place},是一名{job}'.format(job='开发工程师',name='王大锤',place='深圳')
print(str3)

# 结果
我是王大锤,来自深圳,是一名开发工程师

 

七、for 循环

格式:

for 变量 in iterable(可迭代对象) :

  循环体

 

可迭代对象: 由多个元素组成,可被遍历

循环的次数是和可迭代对象的元素个数有关

 

exit('提示语')    # 终止程序并打印提示语

posted @ 2018-08-06 18:02  st--st  阅读(240)  评论(0编辑  收藏  举报