データの種類
1.整数(INT)
主に数値計算のための
1.1転送進小数
「モジュロ2加算、逆配置」メソッド
方法10進数は、商は、次いで、逆の順序で並ぶように得られた残留物を1未満であるまで、商を得るために2で2で除算し、除算、有効ビットが2進数です。
1.2二進化十進数
右から2進数対応デ積を乗じて左に、加算の結果は、対応する10進数であります
進数 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
乗算に対応 | 2 ^ 7 | 2 ^ 6 | 2 ^ 5 | 2 ^ 4 | 2 ^ 3 | 2 ^ 2 | 2 ^ 1 | 2 ^ 0 |
製品に対応 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
結果 | 0 | 0 | 32 | 0 | 8 | 0 | 2 | 0 |
ゼロの積に相当する0,1いくつかの製品に対応する二進数
0010 1010→(回転数10進数)→42
操作の1.3 int型の方法
進整数の長さを計算します
:フォーマット变量名.bit_length()
長バイナリコードに整数を計算します。
num = 10
print(num.bit_length()) # 当十进制用二进制表示时,最少使用的位数
# 运行结果: 4
2.ブール(ブール値)
TrueまたはFalse:ブール値は、2つの種類が正しいかではありません
人間の言語 | バイナリ | Pythonの構文 |
---|---|---|
真に | 1 | 真 |
偽 | 0 | 偽 |
int型→STR
デジタル出力フォーマット文字列
i1 = 100
print(str(i1)) # '100' #包含转换语法
STR→int型
デジタルへの数字の純粋な文字列のみ
s1 = '666'
s1_int=int(s1) # 转换语法
print(s1_int) # 666
int型→BOOL
偽:0と空の、真:非ゼロと非空
# print(bool(135)) # True
# print(bool(0)) # False
BOOL→int型
偽:0、真:1
print(int(True)) # 1
print(int(False)) # 0
STR→BOOL
偽:空、真:空でありません
print(bool('太帅')) # True
print(bool('')) # False
BOOL→STR
文字列表示中(無意味)
print(str(True)) # 'True'
print(str(False)) # 'False'
3.文字列(文字列)
あなたは、少量のデータと対応する動作を格納することができます。
文字列の連結3.1
つまり、文字列の連結であり、文字列が減算されない追加することができるされています
a = '世界'
b = '你好'
print(a + b) # 结果:世界你好
文字列を乗じた3.2
文字列と数値を乗算している、いない除算
a = '坚强'
print(a * 3) # 结果:坚强坚强坚强
3.3インデックス
文字列のインデックスを配置し、インデックスがあります
name = 'meet'
# 索引: 0123
print(name[3]) #结果:t
リバース
右から左への逆の順序で
name = 'meet'
# 索引 -4-3-2-1
print(name[-1]) #结果:t
3.4スライス
選択した文字列抽出された文字の出力期間
フォーマット:变量名[头索引:尾索引]
原則:1にかかわらず、尾のケア、テール・インデックス
# 从索引0开始获取到索引3结束,切片中终止位置减1。
name = 'meet'
# 索引: 0123
print(name[0:3]) # 结果:mee
3.5ステップ
出力文字間隔の制御部の長さ
フォーマット:变量名[头索引:尾索引:步长]
:真ん中は、セミコロンを使用する必要があります。
# 例1
name = 'meet'
# 索引 0123
print(name[0:3:1]) # 结果:mee
分析:彼らは1時間ステップサイズのデフォルト値を書いていないので、ブラケットは、第三1のステップで書いた、と私は書き込みは変更されませんしませんでした前に。
# 例2
name = 'meating'
# 索引: 0123456
print(name[0:5:2]) # 结果:mai
理解する:開始点から各ビット出力に、2の長さのすべての動きで次の間隔を、行くために、最後の最後になってきた、すべての中間出力が文字進められます。(歩幅短いステップ)
解析:起点为0,终点为5,步长为2。索引0加上步长2就找到了索引2,索引2再加上步长2就是索引4,由于终止是索引5,不够再有下次的步长,就终止查找。最后结果就是:mai
倒序排列
切片倒序输出,索引从右往左负数切片,步长也必须为负
原则:顾头不顾尾,尾索引要-1
s = 'hello你好'
print(s[-1:-3:-1]) # 切片倒序输出每位
print(s[-3:-8:-2]) # 切片倒序每间隔一位输出
总结
索引:s[index] # index:下标
切片:s[start_index:end_index+1] # 顾首不顾尾
切片步长:s[start_index:end_index+1:2] # 默认为1可不写,2:每间隔一位输出
倒序切片步长:s[-strat_index:-end_index-1:-1] # 切片倒序为负索引,步长为负
3.6 str 操作方法
以下操作不会对原字符串进行任何改变,只是产生一个新的字符串
转换大、小写
变量名.upper('转换对象')
:转换大写
变量名.lower('转换对象')
:转换小写
注意:转换大小写只作用对于英文
s = 'taiBAifdsa'
s1 = s.upper() # 把这个字符串全部转换大写
s2 = s.lower() # 把这个字符串全部转换小写
print(s1,s2)
应用场景:验证码
username = input('用户名:')
password = input('密码:')
code = 'QwEr'
print(code)
your_code = input('不区分大小写验证码:')
if your_code.upper() == code.upper(): # 如果输入的验证码的大写版与设定的验证码大写版相等
if username == '小王' and password == '123':
print('欢迎')
else:
print('用户名密码错误')
else:
print('验证码错误')
首字母大写
变量名.capitalize()
:将字符串的首字母大写,生成一个新的字符串(中文没有效果)
name = 'alexdasx'
new_name = name.capitalize() # 转换首字母大写
print(new_name) # 结果:Alexdasx
大小写相互转换
变量名.swapcase()
:将大写的字母转换为小写,小写的换为大写(中文没有效果)
name = 'AHDDdsnda'
new_name = name.swapcase() # 大小写转换
print(new_name) # 结果:ahddDSNDA
判断开头、结尾
变量名.startswith('判断对象')
:判断以什么字符为开头
变量名.endswith('判断对象')
:判断以什么字符为结尾
注意:判断结果返回布尔值(True/False)
s = 'taiBAifdsa'
new_name = name.startswith('t') # 括号内设置判断条件,是否以t为开头
print(new_name) # 返回:True
print(s.endswith('a')) # 是否以a为结尾,返回:True
print(s.endswith('i',2,6)) # 切片判断,返回:True
字符串替换
变量名.replace(替换谁,替换成谁,替换次数)
:替换、代替内容
msg = 'wang很nbwang很帅wang有钱'
msg1 = msg.replace('wang','小王') # 替换wang为小王,默认全部替换
# 结果:小王很nb小王很帅小王有钱
msg2 = msg.replace('wang','小王',2) # 替换wang为小王,从左至右替换2次
# 结果:小王很nb小王很帅wang有钱(只替换了前两个)
print(msg1,msg2)
.replace(' ','') # 将所有空格替换成空
去除
变量名.strip()
:括号内为空默认去除空格
s = '\n你好\t' # \n:换行 \t:空四格(等效Tab)
print(s)
s1 = s.strip() # 去除s内两边的空格
print(s1)
变量名.strip('去除指定字符')
:可乱序排列指定去除字符
注意:遇空格停下,必须是与首、尾字符顺序或倒序挨着的才可一起除去,不可单独去除
s = 'abcde你好fg'
print(s.strip()) # 默认去除所有空格
print(s.strip('abc')) # 去除指定字符
print(s.strip('好cbagf你')) # 可乱序排列指定去除字符
分割
变量名.split()
:括号内为空默认按照空格分割,字符串返回列表
知识点:分割是对字符串进行切片,且可以指定分隔n+1个字符串(非常重要)
str ---> list:字符串转列表
s1 = '你好 我好 他好' # 默认按照空格分隔
print(s1.split()) # 结果:['你好', '我好', '他好']标准列表格式
变量名.split('指定分隔符')
:指定分隔符符号,以指定的符号来分割字符串,返回列表
s1 = '你好#我好#他好'
s = s1.split('#') # 指定以#为分隔符
print(s) # 结果:['你好', '我好', '他好']
变量名.split('指定分隔符',分割次数)
:控制分割次数,其余的相同符号可不分割
s1 = ':你好:我好:他好'
s = s1.split(':',2) # 指定以冒号为分隔符,只分割2次
print(s) # 结果:['', '你好', '我好:他好']
连接
'连接符号'.join(变量名)
:每个字符之间用指定的连接符号接合起来
注意:列表里面的元素必须都是str类型才能连接
s1 = 'alex'
s2 = '+'.join(s1) # 每个字符之间用加号连接起来
print(s2) # 结果:a+l+e+x
list ---> str:列表转字符串
s1 = ['你好', '我好', '他好'] # 前提:列表里面的元素必须都是str类型
s = ':'.join(s1) # 把每个元素以冒号连接
print(s) # 结果:你好:我好:他好
s = ['你好', '我好', '他好'] # 字符串列表格式
s1 = ''.join(s) # 以空连接所有字符
print(s1) # 结果:你好我好他好
计数
变量名.count('某字符',索引,索引)
:计算字符串中某字符出现的次数
注意:返回结果的数字为int整型
s = 'sdfsdagsfdagfdhgfhg'
s1 = s.count('d') # 计算s出现的次数
print(s1, type(s1)) # 结果:4 表示出现了4次,这里的数字是int类型
print(s.count('d',0,4)) # 结果:2 计算前5位d出现的次数
查找下标
变量名.find('某字符')
:查找某字符的索引下标是多少,查不到的数就返回-1(整型)
name = 'alexdasx'
new_name = name.find('e') # 通过元素查找下标,不存在就返回-1
print(new_name)
字符串格式化
'字符串{}字符串{}'.format('内容', '内容')
:与%s用法基本相同
msg = '我叫{}今年{}性别{}'.format('大壮', 25, '男') # 括号内容顺序填入对应大括号中
print(msg) # 结果:我叫大壮今年25性别男
'字符串{0}字符串{1}字符串{0}'.format('内容0', '内容1')
:对内容进行排号,序号可重复用
msg = '我叫{0}今年{1}性别{2}我依然叫{0}'.format('大壮', 25, '男')
print(msg) # 结果:我叫大壮今年25性别男我依然叫大壮
'字符串{age}字符串{sex}字符串{name}字符串{age}'.format(sex='内容', age=数字, name= 变量名)
:
指定对应变量名,可重复用,可对应变量
a = 18
msg = '我叫{name}今年{age}性别{sex}我依然叫{name}'.format(age=a, sex='男', name='大壮')
print(msg) # 结果:我叫大壮今年18性别男我依然叫大壮
is 系列
变量名.isalnum()
:判断字符串是否由字母或数字组成
变量名.isalpha()
:判断字符串是否只由字母组成(中文也算)
变量名.isdecimal()
:判断字符串是否只由十进制(数字)组成
注意:判断结果返回布尔值,(有符号或空格结果:False)
name = 'taibai123'
print(name.isalnum()) # 结果:True
print(name.isalpha()) # 结果:False(中文:True)
print(name.isdecimal()) # 结果:False
获取长度
len(变量名)
:获取字符串的长度是多少
name = "Meet"
print(len(name)) # 结果:4
练习:换行打印每一个字符
s = '今天又是元气满满的一天'
count = 0
while count < len(s): # len:获取可迭代对象的元素(字符串)总个数
s1 = s[count] # 索引序号变量
print(s1)
count += 1
for 循环
for 变量 in iterable:
可迭代的:iterable
循环输出每一个可迭代对象的元素(字符串)为变量,循环一边为止(有限)
搭配:break、continue、for else: 、while else:用法一样
s = '今天又是元气满满的一天'
for s1 in s:
print(s1)
for循环是可以循环的数据结构:字符串(str)、列 表(list)、元 祖(tuple)、字 典(dict)、集 合(set)
唯独不能进行循环的是:整型(int)、布尔值(bool)