数字:
int整型
long长整型:无限大小的整数,整数最后一位是大写的或小写的L
在py3中整数如果过长溢出会自动转换为long型
浮点型:(floating point real values) - 浮点型由整数部分与小数部分组成,
浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)
复数(complex numbers): - 复数由实数部分和虚数部分构成,
可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
方法:.bit_length() 表示十进制数转换为二进制数时最少使用的位数。
n = 1
n1 = 3
n2 = 5
n3 = 8
print(n.bit_length())
print(n1.bit_length())
print(n2.bit_length())
print(n3.bit_length())
布尔值:
字符串和布尔值的转换
str—>bool:非空字符串转换为布尔值为True,空字符串为False
s = bool(”)
s1 = bool(‘sdsdsdds’)
print(s, s1)
bool—> str
直接将bool值数字符串化
ps:print(str(1 < 2)) 返回值是字符串:’False’
说明会先进行运算。
布尔值和数字之间的转换
bool—->int
int(True) -> 1
int(bool) -> 0
int—->bool
bool(0) -> False
bool(1) -> True
bool(-1)-> True
bool(1.2) -> True
空列表,空元祖,空字典 -> False
应用:做逻辑判断
字符串:
索引:s[i] 起始为0,顾头不顾尾 i > 0 从左至右;i < 0 从右至左
切片:s[start:end:步长] 步长 > 0 从左至右切;步长 < 0 :从右至左切。
如果没有规定步长,默认从左至右 print(s[::-1]) #逆序字符串
常用方法;终于明白()里是写的是方法的参数,另外学会看源码
*.capitalize() 将首字母大写剩余的小写
.swapcase() 大小写翻转
*.upper()
.lower()
.title() 每个单词的首字母大写,中间需用特殊字符(例如空格)隔开
*.center()----> .center(width, fillchar) fillchar填充字符得是字符串的格式
返回一个指定宽度 width 居中的字符串,如果 width 小于字符串宽度直接返回字符串,否则使用 fillchar 去填充。
***.count()--->.count(子字符串,start参数,end参数)
计算子字符串在字符串中出现的次数.
***.find()
检测字符串是否包含子字符串,包含,返回匹配的*第一个子字符串*的*索引值*,不包含返回-1
----> .find(substring, start参数 ,end参数)
***.index()和.find()
方法一样,不过如果string不包含substring,抛出异常 “substring not found”
*.endswith() 检测字符串中是否以指定后缀结尾
----> .endswith(指定后缀,start参数,end参数)
Str='Runoob example....wow!!!'
print (Str.endswith(suffix,20))
.startswith() 检测字符串中是否以指定内容开头
----> .endswith(指定开头,start参数,end参数) #参数实际是切片,注意位数
.expandtabs() 将字符串中的tab符号(\t)补全成空格
将tab符号前面的字符串位数补全为8,超8的话补全为16,依次类推
----> .expandtabs(tabsize) tabsize 是空格数
**is系列
isalnum()检测字符串是否由数字或字母组成
isalpha()检测字符串是否由字母组成
isdigit()检测字符串是否由数字组成
可作判断条件
****replace()替换字符串中的子字符串
---->.replace(old ,new , max) *max最大替换次数
*****.split()
以指定子字符串分割字符串,返回不含有指 定子字符串的*列表*,默认按空格分割。
----> .split(sub, num) *num是分割次数。
.rsplit() 从右往左。
a = 'I can do it. Yes, I can '
print(a.split()) # 不设置参数,默认是按空格分割
print(a.split('a'))
print(a.split('I')) #### 以开头对象分割返回空字符串
*****.join()
-->S.join(iterable)
以指定字符S连接一个可迭代对象,其元素必须
是字符串
可以将列表转换为*字符串*
同样也可以将元组转换为字符串
连接字典时连接的是键值
L = ['s', 'a', 'hello', 'world']
print('_'.join(L))
print('*'.join(L))
print(''.join(L), type(''.join(L)))
*****.strip()消除字符串*前后*空格 ()
函数参数默认是空格,除此还可以设置参数
lstrip()消除字符串前面(左面)空格
rstrip()消除字符串后面(右面)空格
*****.format()
根据不同的需求进行操作
print('name:{}, age:{} ,length:{}'.format('muyi', 11, 180))
print('name:{0}, age:{1} ,length:{2}'.format('muyi', 11, 180))
print('name:{姓名}, age:{年龄},length:{身高}'.format(姓名='muyi', 年龄=18, 身高=180))
for循环是有限循环
例题:
实现一个整数加法计算器:
如:content = input(‘请输入内容:’) #
如用户输入:5+9或5+ 9或5 + 9,然后进行分割再进行计算。
sum = 0
L = content.split('+')
for i in L:
sum = sum + int(i)
print(sum)
content = input('请输入表达式:')
index = content.find('+')
sum = int(content[0:index]) + int(content[index+1:]) #空格问题,int()函数可以自动去空格
print(sum)
计算用户输入的内容中有几个整数。
如:content = input(‘请输入内容:’) # 如fhdal234slfh98769fjdla
content = input(‘请输入表达式:’)
sum = 0
#两种角度
content = input('请输入:')
count = 0
for i in content:
if i.isdigit():
count += 1
print(count)
s = input('请输入:')
count = 0
while s:
s = s.lstrip('abcdefghijklmnopqrstuvwxyz')
s = s.lstrip('0123456789')
count += 1
print(count)