一、python基本数据类型

1. int ==>  整数. 主要用来进行数学运算
2. str ==> 字符串, 可以保存少量数据并进行相应的操作
3. bool==>判断真假, True, False
4. list==> 存储大量数据.用[ ]表示
5. tuple=> 元组, 不可以发生改变 用( )表示
6. dict==> 字典, 保存键值对, 一样可以保存大量数据
7. set==> 集合, 保存大量数据.  不可以重复. 其实就是不保存value的dict

二、整数 int   主要是对bit_length()的写入

在python3中所有的整数都是int类型. 但在python2中如果数据量比较大. 会使用long类型. 在python3中不存在long类型

    整数可以进行的操作:        bit_length(). 计算整数在内存中占用的二进制码的长度

python str转换 Long类型 python怎么转换数据类型str转int_bc

 

a = 1  # 1 不要和编码混一起
print(a.bit_length()) #  求的是有效长度
a = 3   # 1     10   11 + 1 = 100
print(a.bit_length())
a = 4
print(a.bit_length())

二 布尔值 bool  str int和bool的转换问题   转换值(被转换的值)

 取值只有True, False. bool值没有操作.     转换问题:        

str => int      
int(str)       
int => str      
str(int)
        int => bool    
bool(int).  0是False 非0是True        
bool=>int      int(bool)   True是1, False是0
  str => bool    bool(str)  空字符串是False,  不空是True

bool => str    str(bool)  把bool值转换成相应的"值" 取值只有True, False. bool值没有操作.     转换问题:        

bool转int
# int(bool) True=>int => 1
#           False => int => 0
# print(int(False))    #   1

# 字符串转换成bool  bool(str)
# 空字符串是False. 非空字符串是True
# a = "abcd"
# print(bool(a))  # True
# a = ""
# print(bool(a))  # False
# b = ""  # 空字符串
# a = None    # 真空 False
# print(bool(b))  # False
# print(bool(a))  # False

# 特点: 空:False .非空:True
str => int       int(str)        int => str       str(int)
        int => bool    bool(int).  0是False 非0是True        bool=>int      int(bool)   True是1, False是0
        str => bool    bool(str)  空字符串是False,  不空是True        bool => str    str(bool)  把bool值转换成相应的"值"while True:
#     name = input("输入用户信息:")
#     if not name:
#         break
#     else:
#         print("新员工信息:"+name)

四 字符串

4.1切片和索引

   s = "12334"

语法 print(s[0:3:1])前两位为截取值 后一位为步数,单数子为一个,两数字为一截, 

#     0 1 2 3 45 6 7 8
# s = "今天很萌.明天也萌"
# 字符串中的第几个字符
# 索引语法   字符串[索引] 索引从0开始
# print(s[3])
# print(s[5])
# print(s[0])
# print(s[-1])    # 倒数第一个
# print(s[-5])    # . 倒数第5个\
# 正向 从 0 开始
# 反向 从-1 开始
# 切片
#     0 1 2 3 4 56 7 8 9 101112 13 14
# s = "我想吃切糕.切糕没有芝麻好吃!"
# print(s[2:5])   # 切片. 顾头不顾腚. 前面的能取到. 后面的取不到
# print(s[4:1])   # 给两个参数. 默认向右切
# print(s[5:8])   #  .切糕
#print(s[:7])   # 从头开始切
# print(s[10:])   # 切到最后
# print(s[:]) # 全都切出来
# print(s[5:99])  # 如果右边的值. 超过了字符串长度. 切到最后
# print(s[-5:]) # 啥也不写. 到最后

# 可以跳着切 步长
s = "abcdef,ghijklmn"
# print(s[0:7:2]) # aceg 每2个切一个
# print(s[1:5:3]) # be
# print(s[-8:-2: 2]) # 倒数的也可以跳着切
# print(s[-1:-6:-1])# 反着取.

# 切片: 顾头不顾尾

 4.2字符相关操作

capitalize  首字母大写  
lower 小写
upper 大写
swpapcase 大小写互换
casefold 字母小写 涵盖广
title 每个单词首字母大写
#s = "alex and wusir gaoji"
# s1 = s.capitalize() # 首字母大写 ,
# print(s)    # 原字符串没有变化
# print(s1)

# s2 = s.title() # 标题, 每个单词首字母大写 , 特殊字符, 中文在这里算特殊字符
# print(s2)


# name = "taiBai"
# s1 = name.upper() # 转换成大写字母
# print(s1)
# s2 = name.lower()
# print(s2)

# verify_code = "FaD3"
# verify_code_user = input("请输入验证码:")
# if verify_code.upper() == verify_code_user.upper():
#     print("验证码成功")
# else:
#     print("验证失败")

# s = "alexAndEggonAndRiTian"
# s1 = s.swapcase() # 大小写转换
# print(s1)

# s2 = "БBß" # 俄美德
# print(s2)
# print(s2.lower())
# print(s2.casefold())

  2切来切去

cent 居中

strip去空格可加lstrip和rstrip

更改tab的长度 expandtabs

replace 字替换符

split 字符切割 切割完后行成列表

s = "alex"
# s1 = s.center(15, "*") # 拉长成10个字符. 由*进行填充
# print(s1)

# s = "al\twusir"
# s1 = s.expandtabs()
# print(s)
# print(s1)

# s = "    麻花      藤. 张x忠, 刘华强     "
# s1 = s.strip() # 去掉左右两边的空格, 必须要记住
# print(s1)
#
# s2 = s.lstrip() # 去掉左边的空格
# s3 = s.rstrip() # 去掉右边的空格
# print(s2)
# print(s3)

# username = input("用户名:").strip()
# password = input("密码:").strip()
# if username == 'alex' and password == '123':
#     print("登录成功")
# else:
#     print("失败")

# s = "麻花藤哈哈哈哈麻花藤"
# print(s.strip("麻花"))
# print(s)

# s = "alex,wusir,taibai,eggon"
# s1 = s.replace(",", "喜欢") # 替换
# print(s1) #

# s = "我想吃切糕.切糕没有芝麻好吃!"
# s1 = s.replace(".", "")
# print(s1)

# 切割
# s = "李嘉诚_王健林_马云_刘东强_alex"
# lst = s.split("_") # 字符串切割. 切割的结果是列表
# print(lst[0])
# print(lst[1])
# print(lst[2])
# print(lst[3])
# print(lst[4])

# s = "李嘉诚王健林麻花藤周杰伦"
# # lst = s.split("李嘉诚王健林麻花藤周杰伦")   # 如果原字符串和刀一样.得到的是两个空字符串
# # lst = s.split("马云")   # 如果不存在.得到的是原字符串
# # lst = s.split("")   # empty separator 报错
# # print(lst)
# s.split()

# s = "a_b_c_d_e_f_g"
# lst = s.split("_", 2)   # 第二个参数. 切的次数
# print(lst)
#
# s = "周杰伦_周润发_周星驰_周星星"
# lst = s.split("周杰伦")
# print(lst)
# lst = s.split("周星星")
# print(lst)
# # 在开头和结尾如果出现了你的刀. 一定会出现空字符串

  3格式化输出

format 和%s

格式化输出
# %s 字符串
# %d 数字站位
# print("%s很帅, 你信吗?" % "我")
# print("{}很帅, {}信吗?, 不信给你{}钱".format("旭哥", "我们", 100))
# print("{1}很帅, {0}信吗?, 不信给你{2}钱".format("旭哥", "我们", 100))
# print("{person1}很帅, {person2}信吗?, 不信给你{money}钱".format(person1="旭哥", person2="我们", money=100))

  4查找

startwith 是否以 开头
endwith 是否以 结尾
count  查找  出现的次数
find 出现的位置
index 出现的位置
# count 数数
# s = "alex wusir taibai 女神"
# print(s.count("ai")) #  计算ai在原字符串中出现的次数  如果没出现返回0

# # find 查找
# s = "明天周末了.你们打算干什么去?"
# print(s.find("了"))  # 如果你要查找的内容不存在. 返回-1, 如果存在返回索引

# index 求索引
# s = "下周我们要考试了. 你们慌不慌"
# print(s.index("你大爷"))   # 如果找不到报错

5条件判断

isalnum 字母和数字组成
isalpha 字母组成
isdigit 数字组成
# 条件判断
# s = "写个啥呢? 哈哈哈"
#
# # 判断字符串是否以xxx开头
# print(s.startswith("写个啥呢"))
# # 判断字符串是否以xxx结尾
# print(s.endswith("哈哈哈"))

# 是否是字母和数字组成
# s = "abcdefg"
# print(s.isalnum())  # 数字和字母
# print(s.isdigit())  # 数字
# print(s.isalpha())  # 字母

# s = "壹贰"
# print(s.isnumeric())    # 几乎所有数字
# print(s.isdigit())  # 阿拉伯数字

# 判断字符串是否是小数
# 依据:1. 有小数点. 一个小数点

  6计算字符串的长度

len 内置的函数使用方法和print一样 

求字符串的长度
# s = "abcde"
# ret = len(s)    # 内置函数
# print(ret)
# print("你好")
# s = "吃喝拉撒睡不管有多长"
# for w in s:
#     print(w)
# index = 0
# while index < len(s):
#     print(s[index])
#     index = index + 1
# 练习, 计算在字符串"I am sylar, I'm 14 years old, I have 2 dogs!" 出现过多少个数字. 个位为单位

  7迭代

for  in 

 我们可以使用for循环来便利(获取)字符串中的每一个字符           

语法:               

for 变量 in 可迭代对象:          

          pass               

可迭代对象: 可以一个一个往外取值的对象

s = "I am sylar, I'm 14 years old, I have 2 dogs!"
# count = 0
# for w in s:
#     if w.isdigit():
#         count = count + 1
# print(count)

# 字符串不可变. 每次操作都会返回给你新的字符串