int,str,bool,for循环

今日内容:

一、基本数据类型:

1.int

数字操作只有+-*/,//,%,**

bit_length()   #查询二进制长度

2.str的相关操作: 

str可以把任何类型的数据(字典,元组,列表,集合)强行转换成字符串给引起来,这样就方便了文件的写入.(写入一个文本,必须是字符串类型!),但是反过来就不行.只能用eval()函数.注意eval()函数,有返回值,改的谁,谁来接收.

#str没有clear(),remove(),pop()方法,字符串不能被修改,但是字符串的变量名可以重新赋值,所以replace()方法修改字符串只是把字符串的变量名从新赋值了,字符串其实没有变.

content="123"
print(id(content))
content[0].replace("1","haha")
print(content[0])
print(id(content))

 format() 函数可以接受不限参数,位置可以不按顺序

"{} {}".format("hello", "world")    # 不设置指定位置,按默认顺序
输出结果为:'hello world'
 
 "{0} {1}".format("hello", "world")  # 设置指定位置
输出结果为:'hello world'
 
 "{1} {0} {1}".format("hello", "world")  # 设置指定位置
输出结果为:'world hello world'

 

 

 

 一:切片(顾头不顾尾),被'或者"或者"""括起来的内容

s[start:end:step]
start:开始
end: 结束  #顾头不顾尾
step: 步长, 控制方向. 每xx个取一个
View Code

 二:索引(这个题比较经典)

s = "默念哥没吃饭哥不说话"
print(s[3::-3])    #end参数默认是0,全部,但是没有指向那个方向.所以注意step方向!
输出结果为:没默
View Code

upper()       #全部改大写   之"输入验证码"

verifyCode = "aEmn"
veri = input("请输入验证码(%s)"%verifyCode)
if veri.upper() ==verifyCode.upper():
    print("验证码正确")
else:
    print("验证码错误")
View Code

count()       #计数

lower()       #全部改小写,不支持部分特殊字符

capitalize()     #开头改大写

center()       #居中

casefold()      #全部改小写,支持特殊字符

s = "alex"
s6 = s.center(10,"_")#长度,用_填充
print(s6)

strip(x)  #去两端空白      (包括空格,,\t,\n),中间的内容不会动,可指定要删除的左右两边的内容.应用场景,防止出现商业纠纷.由于用户输正确账号密码后输空格会出现登陆错误,就会找你的问题,不太好看出BUG在哪里.这个方法就防止了问题的发生.

uname = input("请输入你的用户名:").strip()#干掉用户的空格
upws = input("请输入你的密码:").strip()#干掉用户的空格
if uname =="alex" and upws == "123":
    print("登陆成功")
else:
    print("登陆失败")

replace(old,new)  #替换  有返回值,需要接收,返回类型为原类型

s = "good alex good hello"
s1 = s.replace("good","will")
print(s1)

split()#字符串切割,有返回值,需要接收,返回类型为列表

s = "哈哈哈哈"
s2 = s.split("哈")  #切出来的结果会放到一个列表中
print(s2)
结果是:['', '', '', '']

starswith()#判断字符串是否以什么开头

s = "python,哈哈,六六六"
print(s.startswith("python"))
输出结果为:True

endswith()   #以什么结尾

find(str,beg,end)和index()的使用  #查找某个元素的下标,  find方法找不到会返回-1;而index会报错

s = "滋滋冒油的猪蹄子"
#print(s.find("冒油"))
#输出结果为:-1
print(s.index("哈哈"))
输出结果为:报错
View Code

isalpha()判断是否全部由字母组成,不包括数字,空格,但包括中文.

s = "alexwusir"
print(s.isalpha())
View Code

isdigit()和isnumeric()  #是否都是数字组成.前者识别阿拉伯数字,后者还能识别中文的阿拉伯数字

s = "123456"
print(s.isdigit())
输出结果为:True
s = "123一二仟"
print(s.isnumeric())
输出结果为:True
View Code

3.bool

print(bool("哈哈"))#True
print(bool(" ")) #空格是True
print(bool(""))#字符串是False
结论为:所有的空都可以表示False
print(bool([]))#False 空列表
print(bool({})#False 空字典
print(bool(set()))#False 空集合
View Code

4.list

5.tuple

6.dict

7.set

8.bytes

=========================

#补充

for循环.

for 变量 in 可迭代对象:

  缩进+循环体

for c in s:  #用变量 c 遍历(迭代)字符串 s
  print(c) 
View Code

#for循环有一个先决条件,就是in后面必须是可迭代对象,(数字不可迭代)

 

for :不确定范围时,(str,list,dic,tuple,set)

for 循环里不要做删除,因为会错位,出现意外,但是可以做替换replace()

lst = ["ni hao","wo hao","ta hao"]
for i in range(len(lst)): 
    if lst[i] =="ni hao":
        lst[i] = lst[i].replace("ni hao","123")
print(lst)

 

如何用for循环方法删除:迭代新列表,删除就列表

 

a = []
b = ["你好,我好,他也好","好的,真好","这些话都是真的啊?"]
for i in b:
    a.append(i)
print(a)  #现在里面内容跟b一致

for c in a:
    if c=="好的,真好":
        b.remove(c)
print(b)

 for 循环中允许使用continue()

 

lis = ["nihao","wohao","tayehao"]
for i in lis:
    if i=="wohao":
        continue
    else:
        print(i)
输出为:nihao
tayehao

 

 

 

while:不确定循环次数

------------------------------------------------------------------------------------

 

关于python中各类方法有没有返回值的问题:

 

简单的来说除了count、index、copy、pop、sedefault外其他的方法都没有返回值,而且特别强调的是,copy返回的是该列表的值(若将该返回值复制给另外一个变量,则效果是对原列表的一个浅复制,即新的变量完成了对原列表的引用。python3中已经列表和字典的copy方法已经不存在浅复制的问题了,通过实践验证,采用copy得到的副本和原件之间不存在相互影响的问题),pop则是唯一的一个既原地修改原列表又能返回值的方法。
---------------------

 

posted @ 2018-12-04 21:26  Tank-Li  阅读(283)  评论(0编辑  收藏  举报