我来自北方 跨过山与海 驻足你门外

练习题

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('您所输入的字符串不是回文')"""

posted @ 2019-07-08 20:24  SkyRabbit  阅读(112)  评论(0)    收藏  举报
您的浏览器不兼容canvas