练习题
1.笔记
'''
day3 内容
内容大纲
1.整型以及布尔值转换
2.字符串详解
1.整型以及布尔值的转换
1.1整型 -- 数字 (int)
用于比较和运算的
32位 -2 ** 31 -1 ~ 2 ** 31 -1
64位 -2 ** 63 -1 ~ 2 ** 63 -1
+ - * / // ** %
"""
python2 整型 int -- long(长整型) /获取的是整数
python3 整型 int / 获取的是浮点数(小数)
"""
1.2十进制转换二进制
目前有二进制,八进制,十进制,十六进制,常用的有二进制和十进制
十进制转换二进制范例如下:
15 1
7 1
3 1
1 1
24 0
12 0
6 0
3 1
1 1
186 0
93 1
46 0
23 1
11 1
5 1
2 0
1 1
print(bin(186)) # 十进制 -- 二进制
56 0
28 0
14 0
7 1
3 1
1 1 #从下向上进行计算
print(bin(56))
1.3二进制转十进制
二进制转换成十进制范例:
111000 # 从右向左进行计算
0 * 2 ** 0 + 0 * 2 ** 1 + 0 * 2 ** 2 + 1 * 2**3 + 1*2 ** 4 +1 * 2** 5
0 + 0 + 0 + 8 + 16 + 32
10101
1 * 2 ** 0 + 0 * 2**1 + 1* 2**2 + 0 * 2**3 + 1* 2 **4
1 + 0 + 4 + 0 + 16
print(int("10101",2)) # 将二进制转换成十进制
1.4 十进制转二进制/二进制转十进制 命令
print(int("10101",2)) # 将二进制转换成十进制
print(bin(21)) # 将十进制转换成二进制
1.5 布尔值 b o o l ()
print(bool(1)) # 数字非零的就是True 零就是False
print(bool("")) # 字符串不为空就是True ,字符串中没有任何内容就是False
2.字符串的详解
在python中引号引起来就是字符串
字符串是用来存储少量数据
2.1 索引
name = "meat"
meat 每一个字母叫做一个元素
0123 从左向右
-4-3-2-1 从右向左
索引(下标) 通过索引可以精确的定位到某个元素
name = "今天是个好日子"
0 1 2 3 4 5 6
-7-6-5-4-3-2-1
a = name[0]
b = name[1]
print(a+b)
2.2 切片
print(name[0:2]) # 顾头不顾尾 name[起始位置:终止位置]
print(name[:]) # 某个位置不指定的时候默认取最后或最前
print(name[2:5])
print(name[-2:-5])
print(name[-2:-5:-1]) # [起始位置:终止位置:步长] 步长默认为1
name = "大黑哥吃大煎饼"
print(name[1:5])
print(name[-2:-6:-1])
print(name[-6:6])
a = name[0]
b = name[2]
c = name[4]
d = name[6]
print(a+b+c+d)
print(name[::2])
print(name[100:105]) #切片的时候起始位置和终止位置都超出的时候不会进行报错
print(name[100]) # 索引的时候索引值超出范围的时候回报错
"""
s = 'Python最NB'
获取s字符串中前3个内容
s[0:3]
获取s字符串中第3个内容
s[2]
获取s字符串中后3个内容
s[-3:]
获取s字符串中第3个到第8个
s[2:8]
获取s字符串中第2个到最后一个
s[1:]
获取s字符串中第1,3,5个内容
s[0:6:2]
获取s字符串中第2,4,6个内容
s[1:7:2]
获取s字符串中所有内容
s[:]
获取s字符串中第4个到最后一个,每2个取一个
s[3::2]
获取s字符串中倒数第5个到最开始,每3个取一个
s[-5::-3]
"""
2.3 字符串的方法
字符串的方法:
s = "ALEX"
s1 = s.upper() #全部大写
print(s1)
s1 = s.lower() # 全部小写
print(s1)
应用场景
s = input("验证码(AbC5)")
if s.upper() == "AbC5".upper():
print("验证码正确")
else:
print("验证码错误!")
以什么开头:
s = "ALEX"
s1 = s.startswith("E",2,6)
print(s1)
以什么结尾:
s = "ALEX"
s1 = s.endswith("X",3,4)
print(s1)
统计
s = "alexdxjbx"
s1 = s.count("x")
print(s1)
脱: 字符串头尾两端的空格和换行符以及制表符
n = input(">>>")
if n.strip() == "alex":
print("1")
else:
print("2")
s = "alexdsba"
s1 = s.strip("a") # 可以指定内容取脱
print(s1)
分割:以空格和换行符以及制表符进行分割
s = "aelxlaaa"
s1 = s.split("l",maxsplit=1) # 可以通过指定方式进行切割
print(s1)
替换:
s = "大黑哥吃肉夹馍,肉夹馍"
s1 = s.replace("肉夹馍","大煎饼")
s1 = s.replace("肉夹馍","大煎饼",1) # 指定替换的次数
print(s1)
is 系列:
s = "12.3"
print(s.isalnum()) # 判断是不是字母,数字,中文
print(s.isalpha()) # 判断是不是字母,中文
print(s.isdigit()) # 判断字符串是不是全都是阿拉伯数字
print(s.isdecimal()) # 判断是否是十进制
print(len(name)) ****len()不是字符串的方法,是公用的方法
3.for 循环
for 关键字
i 是变量名
in 关键字
name 可迭代对象
name = "alex"
for x in name:
print(x)
print(x)
错误的示范
name = True
for i in name:
print(i)
数据类型中只有整型和布尔值不能够进行for循环
'''
2.有变量name = "aleX leNb" 完成如下操作:
移除 name 变量对应的值两边的空格,并输出处理结果
name = "aleX leNb"
print(name.strip())
判断 name 变量是否以 "al" 开头,并输出结果
print(name.startswith('a'))
判断name变量是否以"Nb"结尾,并输出结果
print(name.endswith('Nb'))
将 name 变量对应的值中的 所有的"l" 替换为 "p",并输出结果
print(name.replace('l','p'))
将name变量对应的值中的第一个"l"替换成"p",并输出结果
print(name.replace('l','p',1))
将 name 变量对应的值根据 所有的"l" 分割,并输出结果
print(name.split('l'))
将name变量对应的值根据第一个"l"分割,并输出结果
print(name.split('l',1))
将 name 变量对应的值变大写,并输出结果
print(name.upper())
将 name 变量对应的值变小写,并输出结果
print(name.lower())
判断name变量对应的值字母"l"出现几次,并输出结果
print(name.count('l'))
如果判断name变量对应的值前四位"l"出现几次,并输出结果
print(name[0:5].count('l'))
请输出 name 变量对应的值的第 2 个字符?
print(name[1])
请输出 name 变量对应的值的前 3 个字符?
print(name[0:3])
请输出 name 变量对应的值的后 2 个字符?
print(name[-2::1])
3.有字符串s = "123a4b5c"
s = "123a4b5c"
通过对s切片形成新的字符串s1,s1 = "123"
s1=s[0:3]
print(s1)
通过对s切片形成新的字符串s2,s2 = "a4b"
s2=s[3:6]
print(s2)
通过对s切片形成新的字符串s3,s3 = "1345"
s3=s[0::2]
print(s3)
通过对s切片形成字符串s4,s4 = "2ab"
s4=s[1:-2:2]
print(s4)
通过对s切片形成字符串s5,s5 = "c"
s5=s[-1]
print(s5)
通过对s切片形成字符串s6,s6 = "ba2"
s6=s[-3::-2]
print(s6)
4.使用while和for循环分别打印字符串s="asdfer"中每个元素。
while
sOne="asdfer"
i=0
while i<6:
print(sOne[i])
i+=1
#for循环
for x in sOne:
print(x)
5.使用for循环对s="asdfer"进行循环,
但是每次打印的内容都是"asdfer"。
sTwo="asdfer"
for z in sTwo:
print(sTwo)
6.使用for循环对s="abcdefg"进行循环,
'''
每次打印的内容是每个字符加上sb,
例如:asb, bsb,csb,...gsb。
for循环对s="abcdefg
'''
sThree="abcdefg"
for v in sThree:
print(v+'sb')
使用for循环对s="321"进行循环,
打印的内容依次是:
"倒计时3秒","倒计时2秒","倒计时1秒"
,"出发!"。
sFour="321"
numberOne = 0
for b in sFour:
print('倒计时%s秒'%sFour[numberOne])
numberOne+=1
if numberOne>=3:
print('出发')
8.实现一个整数加法计算器(两个数相加):
'''
如:content = input("请输入内容:")
用户输入:5+9或5+ 9或5 + 9,然后进行分割再进行计算。
'''
content = input("请输入内容:")
contenes=content.split('+')
numberThree=int(contenes[0].strip())
numberFour=int(contenes[1].strip())
numberTwo=numberThree+numberFour
print(numberTwo)
9.选做题:实现一个整数加法计算器(多个数相加):
'''
如:content = input("请输入内容:")
用户输入:5+9+6 +12+ 13,然后进行分割再进行计算。
'''
content = input("请输入内容:").strip()
s = content.split("+")
sum = 0
for num in s:
sum += int(num)
print(sum)
'______________________________________________________________'
10.计算用户输入的内容中有几个整数(以个位数为单位)。
如:content = input("请输入内容:")
如fhdal234slfh98769fjdla
Number_Ten=0
inputNumber=input("请输入内容:")
Q=len(inputNumber)
W = 0
while True:
if inputNumber[W].isdigit():
Number_Ten+=1
W += 1
if W>=Q:
break
print(Number_Ten)
11.写代码:计算 1 - 2 + 3 ... + 99 中除了88以外所有数的总和?
NumberSix=1
NumberSix_CangKu=0
NumberSeven=0
NumberSeven_CangKu=0
while NumberSeven<99:
NumberSeven+=1
if NumberSeven%2==0:
NumberSeven_CangKu=NumberSeven+NumberSeven_CangKu
print(NumberSeven_CangKu)
while NumberSix<=99:
NumberSix+=1
if NumberSix%2==1:
NumberSix_CangKu+=NumberSix
print(NumberSix_CangKu)
sum=NumberSix_CangKu+1-NumberSeven_CangKu+88
print(sum)
'''
12.选做题:写代码,完成下列需求:
用户可持续输入(用while循环),用户使用的情况:
输入A,则显示走大路回家,然后在让用户进一步选择:
是选择公交车,还是步行?
选择公交车,显示10分钟到家,并退出整个程序。
选择步行,显示20分钟到家,并退出整个程序。
输入B,则显示走小路回家,并退出整个程序。
输入C,则显示绕道回家,然后在让用户进一步选择:
是选择游戏厅玩会,还是网吧?
选择游戏厅,则显示 ‘一个半小时到家,爸爸在家,拿棍等你。’并让其重新输入A,B,C选项。
选择网吧,则显示‘两个小时到家,妈妈已做好了战斗准备。’并让其重新输入A,B,C选项。
'''
while True:
IsOK=inputNumber=input('请输入ABC')
if IsOK =='A':
GoHome=input("请选择公交车还是步行回家")
if GoHome=='公交车':
print('10分钟到家')
break;
elif GoHome=='步行':
print('20分钟到家')
break;
elif IsOK=='B':
print('走小路回家')
break
elif IsOK=='C':
Player = input("游戏厅还是网吧")
if Player=='游戏厅':
print('一个半小时到家,爸爸在家,拿棍等你。')
elif Player=='网吧':
print('两个小时到家,妈妈已做好了战斗准备。')
选做题:判断⼀句话是否是回⽂. 回⽂: 正着念和反着念是⼀样的. 例如, 上海⾃来⽔来⾃海上(使用步长)
"""
Number=input('请输入')
a = len(Number)
i = 0
count = 1
while i <= (a/2):
if Number[i] == Number[a-i-1]:
count = 1
i += 1
else:
count = 0
break
if count == 1:
print('您所输入的字符串是回文')
else:
print('您所输入的字符串不是回文')"""

浙公网安备 33010602011771号