码迷,mamicode.com
首页 > 编程语言 > 详细

Python基础知识(三)

时间:2018-12-24 16:12:09      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:次数   老男孩   出现   inpu   uri   swap   tar   大写   字典   

Python基础知识(三)
一、基础数据类型
整数型 int
字符串 str
布尔值 bool
列表 list
元组 tuple
字典 dict
集合 set

二、整数 int
二进制 与 十进制 相互转换:
1.二进制 与 十进制的关系

获取十进制 转换二进制的有效位数
i = 4
print(i.bit_length()) # 3

二进制 十进制
0000 0100 4
这里的二进制中后三位的100 就是有效位数

2.二进制 怎样转换十进制
例如:
二进制 0010 1101
0 0 1 0 1 1 0 1
0*2**7 + 0*2**6 + 1*2**5 + 0*2**4 + 1*2**3 + 1*2**2 + 0*2**1 + 1*2**0
print(0*2**7 + 0*2**6 + 1*2**5 + 0*2**4 + 1*2**3 + 1*2**2 + 0*2**1 + 1*2**0)
等于45

3.十进制 怎样转换二进制
方法:对2整除 取余数 逆向排列
例如:十进制 42
除法 商 余数
42/2 21 0
21/2 10 1
10/2 5 0
5/2 2 1
2/2 1 0
1/2 0 1
这里不够8位,直接补0即可
所以42对应的二进制(逆向排序)是 0010 1010
前面的两个 0 是补上去的。


a = int(" 56 ")
print(a)
b = int("56")
print(b)
c = int(" 5_6 ")
print(c)


三、字符串 str
1.字符串的 索引 与 切片
字符串的切片索引 以及常用的操作方法,都是形成新的字符串,与原来的字符串没有关系。
顾头不顾尾
s = [1 ,2 ,3]
s1 = s[0]
print(s1)
print(s == s1)


s = "123456789"
s2 = s[-2::-2]
print(s2) # 8642

s = "123456789"
s2 = s[-2::2]
print(s2) # 8

s = "123456789"
s2 = s[-2:-1:-1]
print(s2) # 空

s = "123456789"
s2 = s[-2:7:-1]
print(s2) # 空

s = "123456789"
s2 = s[-2:0:0]
print(s2) # 步长为0没意义

s = "123456789"
s2 = s[-2:-9:-2]
print(s2) # 8642

s = "123456789"
s2 = s[-2:-9999:-2]
print(s2) # 8642


2.字符串常用方法
(1)capitalize() 首字母大写
title() 所有单词大写
s = "zhou wanchun"
s1 = s.capitalize()
s2 = s.title()
print(s1)
print(s2)


(2)center() 将字符串居中
s = "三斤春药"
s1 = s.center(20)
s2 = s.center(20 ,"*")
print(s1)
print(s2)


(3)swapcase() 字母大小写 翻转
s = "LOVEoracle"
s1 = s.swapcase()
print(s1)


(4)upper() 单词全部大写
lower() 单词全部小写
s = "ZHOUwanchun"
s1 = s.upper()
s2 = s.lower()
print(s1)
print(s2)

这两种用法可以用在 比如验证码之类
username = input("请输入你的用户名:")
password = input("请输入你的密码:")
code = "WsAd".upper()
your_code = input("请输入你的验证码:").upper()
if your_code == code:
if username == "三斤春药" and password == "oracle":
print("登录成功")
else:
print("用户名或者密码错误")
else:
print("验证码错误")


(5)startswith() 判断是否以某些元素开头
endswith() 判断是否以某些元素结尾
s = "zhouwanchun"
s1 = s.startswith("zhou")
s2 = s.endswith("chun")
s3 = s.endswith("wan")
print(s1)
print(s2)
print(s3)


(6)find()和 index()
在字符串中查找某元素是否存在及存在的位置(从0开始计数)
find() —— 通过元素找索引,找到第一个就返回(可切片),找不到返回-1
index() —— 通过元素找索引,找到第一个就返回(可切片),找不到报错
通过比较可知,能用 find() 就用它,以免使用 index() 时引起不必要的报错
s = "zhouwanchun"
print(s.find("w")) # 4
print(s.find("w",8)) # -1
print(s.index("w")) # 4
print(s.index("s")) # 报错


(7)strip() 默认去除 字符串前后两端的 空格 换行符 制表符
name = "***zhouwanchun###"
s1 = name.strip("*")
s2 = name.strip("#")
s3 = name.strip("*,#")
print(s1)
print(s2)
print(s3)
print(name.strip("*,#"))


在程序的应用场景一般是用户对于验证码的输入
因为验证码输入大小写都是可以的,所以程序必须判定只要内容相同,用户的输入就可以通过
例如:
username = input("请输入你的用户名:").strip()
password = input("请输入你的密码:").strip()
if username == "三斤春药" and password == "oracle":
print("登录成功")
else:
print("用户名或者密码错误")


(8)split() 以某条件分隔
最终形成一个不含有这个分隔符的元素 的列表。
字符串 转换为 列表的方法
默认以空格分隔
a = "alex wusir taibai"
a1 = a.split()
print(a1)

b = "alex:wusir:taibai"
b1 = b.split(":")
print(b1)

c = "alex:wusir:taibai:xiaohu:日天"
c1 = c.split(":" ,1)
print(c1)

d = ":alex:wusir:taibai:xiaohu:日天"
d1 = d.split(":" ,1)
print(d1)


s = ‘wusir alex taibai‘
ss = ‘wusir:alex:taibai‘
sss = ‘taibai:alex:wusir:xiaohu:日天‘
ssss = ‘:wusir:alex:taibai‘
s10 = s.split() # [‘wusir‘, ‘alex‘, ‘taibai‘]
s11 = ss.split(":") # [‘wusir‘, ‘alex‘, ‘taibai‘]
s12 = sss.split(":", 1) # [‘taibai‘, ‘alex:wusir:xiaohu:日天‘]
s13 = ssss.split(":") # [‘‘, ‘wusir‘, ‘alex‘, ‘taibai‘]
print(s10)
print(s11)
print(s12)
print(s13)


(9)join() 这种方法可以用于 列表 转变成字符串
条件是必须全部都是字符串组成的列表
s = ["zhou" ,"wan" ,"chun"]
ss = "三斤春药"
s1 = " ".join(s)
ss1 = "_".join(ss)
print(s1)
print(ss1)


(10)replace() 替换字符串
s = "alex 是老男孩教育创始人之一,alex也是一个屌丝,alex"
s1 = s.replace("alex" ,"日天" ,2)
print(s1)


(11)format 格式化输出
s = "我叫{}, 今年{}, 性别{}.".format("三斤春药" ,22 ,"男")
print(s)

s = "我叫{0}, 今年{1}, 性别{2}, 我依然叫{0}.".format("三斤春药" ,22 ,"男")
print(s)

s = "我叫{name}, 今年{age}, 性别{sex}, 我依然叫{name}.".format(name="三斤春药" ,age=22 ,sex="男")
print(s)


(12)is系列
s = "loveoracle11g"
print(s.isalnum()) #字符串由字母或数字组成
print(s.isalpha()) # 字符串只由字母组成
print(s.isdigit()) # 字符串只由数字组成

注意在这里的用法
比如购物车付钱,让用户输入钱
如果不小心输入"100a",会报错,可以这样:
money = input(">>>")
if money.isdigit():
money = int(money)


(13)count() 计算字符串中 某个字符出现的次数
s = "loveoracle11g"
print(s.count("o"))
print(s.count("o",2))
print(s.count("1"))


(14)len() 是一种公共方法
s = "dbkkcbjk djheiwfjo"
print(len(s)) # 18

延伸用法
s = "三斤春药"
count = 0
while True:
print(s[count])
count = count + 1
if count == len(s):
break


Python基础知识(三)

标签:次数   老男孩   出现   inpu   uri   swap   tar   大写   字典   

原文地址:https://www.cnblogs.com/zhouwanchun/p/10168534.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!