int
i = 100
print(i.bit_length())
十进制转化成二进制的有效位数
1 0000 0001
2 0000 0010
3 0000 0011
100
基础数据类型初识:
int(数字):用于计算
str(字符串 ):存储少量数据
bool(布尔值):判断真假 True False
list(列表):储存 各种数据类型的数据,大量的数据,便于操作
tuple(元组):() 只读列表。(有权限看,没权利改)
dict(字典):1,存储大量的数据,关系型数据。
set(集合):用于关系型测试
tuple (元组):()只读列表。(有权限看,没权利改)
int <---> str
str ---> int int(str) 条件:字符串必须全部由数字组成。
int ---> str str(int)
age = int(input('>>>')) print(age,type(age)) s1 = str(123) s2 = 123 print(s1, type(s1))
bool ----> int True ---> 1 False ---> 0
int ----> bool 非零即为True,零 False
bool ---> str str(True) str(False)
str ---> bool 非空即为 True ''空字符串 --> False
输入员工信息q退出:
while True: name = input('输入用户信息:') if name == 'q': break else: print('新员工信息:'+name)
向系统中录入员工信息,不停的录入 回车时退出
while 1: name = input('输入员工信息:') if not name: break print('员工信息是%s' % name) if条件为真代码块执行 not False('') == True 所以条件执行break 所以输入空的时候退出程序
索引,切片 ,步长
索引 索引有顺序排列,第一位开始是0,1,2,3...
s = 'python12期' s1 = s[0] print(s1,type(s1)) type:检查属于什么类型的数据 s2 = s[4] print(s2) print:0 s3 = s[2] print(s3) print:t s6 = s[0:6] 切片:顾头不顾尾 print(s6) print:python s7 = s[1:4] print(s7) print:yth s8 = s[1:] print(s8) print:ython12期 s10 = s[:5:2] print(s10) print : pto s12 = s[-1:-5:-1] print(s12) print:期21n
字符串的常用操作方法
s = 'laoNANhai'
** capitalize 首字母大写,其余字母小写
s1 = s.capitalize()
print(s1)
* 居中 center
s = 'laoNANhai'
s2 = s.center(27,"*")
print(s2)
*** upper:全大写
lower:全小写
s = 'laoNANhai'
s3 = s.upper()
s31 = s.lower()
print(s3)
print(s31)
输入验证码,不区分大小写:
code = 'QAdr'.upper()
your_code = input('请输入验证码,不区分大小写:').upper()
if your_code == code:
print('验证成功')
erify_code = 'FaD3'
verify_code_user = input('请输入验证码:')
if verify_code.upper() == verify_code_user.upper():
print('验证码成功')
else:
print('验证失败')
casefold:转换成小写,和lower的区别:lower对于某些字符支持的不够好。casefold对所有字母都有效,比如东欧的一些字母
*** startswith :判断以什么内容开头,
返回bool,可以切片,切片用逗号隔开。
***endswith
s = 'laoNANhai' s4 = s.startswith('l') s41 = s.startswith('lao') s42 = s.startswith('N', 3, 6) print(s42) print(s4) print(s41)
* swapcase 大小写翻转
s5 = s.swapcase()
print(s5)
* title() 非字母隔开的每个单词的首字母大写。
ss = 'gdsj wusir6taibai*ritian'
s6 = ss.title()
print(s6)
***通过元素找索引
index:通过元素找索引,可切片,找不到报错
find: 通过元素找索引,可切片,找不到返回-1
s = 'laoNANhai' s7 = s.find('a') s71 = s.find('A',2,) s71 = s.find('Q',) print(s71) s72 = s.index('Q') print(s72) print(s71) ss = ' alex ' print(ss)
*** strip 去除前后端的空格,换行符,制表符。
ss = ' ablabsexsba' s8 = ss.strip() print(s8) s9 = ss.strip('a') s9 = ss.strip('abs') lstrip() rstrip() print(s9)
input后必加“.strip”
username = input('请输入用户名').strip()
if username == '碗蓉':
print('登录成功')
***split str ---> list
默认以空格分割,
s = 'wusir alex taibai' st = 'wusir,alex,taibai' st1 = 'QwusirQalexQtaibai' s10 = s.split() print(s10) s101 = st.split(',') 以‘,’分割 print(s101) s102 = st1.split('Q',2) 以‘Q,分割,分割2个Q’ print(s102) print:['', 'wusir', 'alexQtaibai']
s = '李嘉诚王健林马化腾周杰伦' lst = s.split('李嘉诚王健林马化腾周杰伦')#如果原字符串和刀一样得到的是两个空字符串 lst = s.split('李嘉诚王健林马化腾周杰伦222')#如果过长得到的是原字符串 lst = s.split('马云') #如果不存在,得到的是原字符串 lst = s.split('') #报错 print(lst) 在开头和结尾出现了刀,一定会出现空字符串
***join
在某些情况下,list --- >str
s = 'alex' s11 = '+'.join(s) print(s11) print:a+l+e+x l = ['wusir', 'alex', 'taibai'] s111 = ' '.join(l) print:wusir alex taibai(空格分开) print(s111,type(s111)) 检查是str
repalce替换
s = '小粉嫩小粉嫩ghlasdfg小粉嫩' s12 = s.replace('小粉嫩', '大铁锤') s12 = s.replace('小粉嫩', '大铁锤',2) (替换前两个 ) print(s12) print:大铁锤大铁锤ghlasdfg小粉嫩
expandtabs:更改tab的长度
s6 = 'alex wusir eggon'
print(s6)
print(s6.expandtabs())#可以改变 的长度,默认长度更改为8
公共方法:
len() 总个数
s = 'fdsajlskgjdsaf;jdskfsdaf'
print(len(s)) print:24
count 计算某些元素出现的个数,可切片 找不到返回0
1 = s.count('f')
print(c1) print:4
format格式化输出,
三种方式:
1, msg = '我叫{},今年{},爱好{}'.format('太白', '20', 'girl') print(msg) 2, msg = '我叫{0},今年{1},爱好{2},我依然叫{0}'.format('太白', '20', 'girl') print(msg) 3, msg = '我叫{name},今年{age},爱好{hobby}'. format(name='太白', hobby='girl', age='20') print(msg) name='jinxin123'
format格式化输出格式:
'{}{}{}'.format('laonamhai','nan','25') '{0}{1}{2}{0}{0}'.format('laonamhai','nan','25') '{name}{age}{sex}'.format(name='laonanhai',sex = 'nan',age=25)
print(name.isalnum()) #判断:字符串由字母或数字组成
print(name.isalpha()) #判断:字符串只由字母组成
print(name.isdigit()) #判断:字符串只由数字组成
s = 'fdsagdsfgfdsadsaf'
s = 'alex'
print(s[100])
print(s[0])
print(s[1])
count = 0
while count < len(s):
print(s[count])
count += 1
for i in s:
print(i+'sb')
for 变量 in 可迭代对象:
pass
for是有限循环,while是无限循环
语法: for 变量 in 可迭代对象: 循环体 可迭代对象:可以一个一个往外取值的对象
练习题:
1,使用while和for循环分别打印字符串s=’asdfer’中每个元素。
s = 'asdfer'
count = 0
while count<len(s):
print(s[count])
count=count+1
for i in s:
print(i)
2,实现一个整数加法计算器(两个数相加):
如:content = input(‘请输入内容:’) 用户输入:5+9或5+ 9或5 + 9,然后进行分割再进行计算。
content = input('请输入内容:')
li = content.split('+')
print(li)
print(int(li[0].strip()) + int(li[1].strip()))
3,计算用户输入的内容中有几个整数(以个位数为单位)。
如:content = input(‘请输入内容:’) # 如fhdal234slfh98769fjdla
content = input('请输入内容:')
count = 0
for i in content:
if i .isdigit():
count = count + 1
print(count)