python基础练习题

12月 3 日

1、使用while循环输入 1 2 3 4 5 6     8 9 10

  

for i in range(1,10):

  if i == 7: print(" ",end="") else: print("%d "%i,end="")

2、求1-100的所有数的和

1 for i in range(1,101):
2     if i <100 :
3         j = j+i
4     else:
5         print(i+j)

3、输出 1-100 内的所有奇数,输出 1-100 内的所有偶数

j = 0
k = 0
for i in range(1,101):
    if i%2 == 0:
        j = j+i
    else:
        k = k+i
print("所有奇数和为%d,偶数和为%d"%(k,j))

4、求1-2+3-4+5 ... 99的所有数的和

# 求1-2+3-4+5...99的所有数的和
def main():
    j = 0
    i = 0
    while i < 100:
        if i%2 == 1:
            j = j+i
        else:
            j = j-i
        i = i+1
    print("1-2+3-4+...+99的和为%d"%j)


if __name__ == '__main__':
     main()

5、用户登陆(三次机会重试)

 1     username = "liuming"
 2     password = 123456
 3     i = 0
 4     while i < 3:
 5         i += 1
 6         user_name = input("请输入你的名称:")
 7         if user_name == username:
 8             pass_word = input("请输入你的密码:")
 9             if int(pass_word) == password:
10                 print("登录成功")
11                 break
12             else:
13                 print("密码输入错误,请重新输入")
14             if i == 3:
15                 print("登录超过3次,请明天再试")
16         else:
17             print("用户名不存在")
18             if i == 3:
19                 print("登录超过3次,请明天再试")

12月4日1.判断下列逻辑语句的True和False


 (1) 1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
(2) not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
 (3) 1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8 and 4> 6 or 3 <2

2.求出下列逻辑语句的值
 (1) 8 or 3 and 4 or 2 and 0 or 9 and 7
 (2) 0 or 2 and 3 and 4 or 6 and 0 or 3
 (3) 5 and 9 or 10 and 2 or 3 and 5 or 4 or 5

3.下列结果是什么?

 x or y,若x为真,则返回x.若x为假,y为真,则返回y.若x和y都为假,返回y
 x and y,若x为真,y也为真,则返回y.y为假,则返回y.若x为假,则返回x.

 (1) 6 or 2 > 1
 (2) 3 or 2 > 1
(3) 0 or 5 < 4
(4) 5 < 4 or 3
 (5) 2 > 1 or 6
 (6) 3 and 2 > 1
 (7) 0 and 3 > 1
 (8) 2 > 1 and 3
(9) 3 > 1 and 0
(10) 3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 >2

 4.简述变量命名规范
"""
变量要以数字、下划线或者字母任意组合,且不能以数字开头;
不能以关键字命名;
一般不以中文以及汉字拼音命名;
常量一般全部是大写;
命名要有意义,不宜过长。

"""
5.name = input (">>>")name变量是什么数据类型?
"""
使用input,从键盘上输入的值都将变为字符串类型。
"""6.if条件语句的基本结构?

"""
if xxx:

  xxx
elif xxx:

  xxx
else:
  xxx
"""
7.while循环语句基本结构?
"""
while 条件判断:
执行语句
"""
8.计算1-2+3...+99中除了88以外所有数的和?

i = 1
sum = 0
while i < 100:
    if i == 88:
        i += 1
        continue
    elif i%2 != 0:
        sum = sum + i
    else:
        sum = sum - i
    i += 1
print(sum)

9.用户登录(3次输错机会)且每次输错误时显示剩余错误次数(使用字符串格式化)

username = "liuming"
password = "123456"
i = 3
while i>=0:
    name = input("用户名:")
    i -= 1
    if i == 0:
        print("你的机会已经用完")
        break
    if name == username:
        passwd = input("密码:")
        if passwd == password:
            print("登录成功")
        else:
            print("密码错误,请重新输入,你还有%s次机会"%i)
            continue
    else:
        print("用户名错误,请重新输入,你还有%s次机会"%i)

10.简述 ascii unicode utf-8编码关系?
"""
ascii 只能显示英文,特殊字符,数字。
万国码:unicode 最开始16位,中文不够32位 4个字节。占用资源多。
升级:utf-8 utf-16 utf-32
utf-8:最少用一个字节,8位表示一个英文。欧洲16位,两个字节。亚洲 24位,三个字节。
gbk:中国国产,只能用于中文和ascii码中的文字,一个中文用两个字节表示。
"""
11.简述位和字节的关系?
"""
位:二进制位(bit)是计算机存储信息的基本单位,代表1个二进制数位,其值为0或1。
字节:8个连续的二进制位为一个字节,可以存放1个西文字符的编码。

"""
12."老男孩" 使用utf-8编码占用几个字节?使用gbk编码占用几个字节?
"""
“老男孩”使用UTF-8编码占用9个字节
“老男孩”使用GBK编码占用6个字节
"""

13.制作趣味模板程序需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意显示 如:敬爱可亲的xxx,最喜欢在什么地方干xxx.
"""

name = input('请输入姓名:')
place = input('喜欢的地点:')
hobby = input('你的爱好:')
tem = '敬爱可亲的%s,最喜欢在%s地方干%s'%(name, place ,hobby)
print(tem)

"""

14. 等待用户输入内容,检测用户输入内容中是否包含敏感字符?如果存在敏感字符提示“存在敏感字符请重新输入”,并允许用户重新输入并打印。敏感字符:“小粉嫩”、“大铁锤”

while True:
    msg = input("请输入内容:")
    if msg == "小粉嫩" or msg == "大铁锤":
        print("存在敏感字符,请重新输入")
    else:
        break

15. 单行注释以及多行注释?

"""
单行注释:#
多行注释:""" """
"""

16. 简述你所知道的Python3和Python2的区别?
"""
Python2:源码杂而乱,且有重复内容,违背了Python的宗旨。默认编码方式是ASCII码,读取中文时会乱码
Python3:遵循“优雅,明确,简单”,默认编码方式是utf-8,读取中文时不会乱码
"""

17. 看代码书写结果:
"""
a = 1>2 or 4<7 and 8 == 8
print(a)

结果:True
"""

18. continue 和 break 的区别?
"""
continue:结束本次循环,继续下一次的循环;
break:直接跳出循环。
"""

19. 看代码书写结果:
"""
a = 12 and 127
print(a)

结果:127
"""

12月5日

1,有变量name = "aleX leNb" 完成如下操作:
""" title() -->首字母大写,其余小写
strip() -->删除字母两边的空格 lstrip -->删除左边空格 rstrip -->删除右边空格
1) 移除name 变量对应的值两边的空格,并输出处理结果
print(name.strip())
2) 移除name变量左边的"al"并输出处理结果
print(name[2:])
3) 移除name变量右面的"Nb",并输出处理结果
print(name[0:-2]
4) 移除name变量开头的a"与最后的"b",并输出处理结果
print(name[1,-1])
5) 判断 name 变量是否以 "al" 开头,并输出结果
if name[0:2] == "al":
print("yes")
else:
print("no")
6) 判断name变量是否以"Nb"结尾,并输出结果
使用 name[-2:]
7) 将 name 变量对应的值中的 所有的"l" 替换为 "p",并输出结果
print(name.replace("l","p"))
8) 将name变量对应的值中的第一个"l"替换成"p",并输出结果
print(name.replace("l","p",1))
9) 将 name 变量对应的值根据 所有的"l" 分割,并输出结果。
print(name.split("l"))
10) 将name变量对应的值根据第一个"l"分割,并输出结果。
print(name.split("l",1))
11) 将 name 变量对应的值变大写,并输出结果
print(name.upper())
12) 将 name 变量对应的值变小写,并输出结果
print(name.lower())
13) 将name变量对应的值首字母"a"大写,并输出结果
print(name.capitalize())
14) 判断name变量对应的值字母"l"出现几次,并输出结果
print(name.count("l"))
15) 如果判断name变量对应的值前四位"l"出现几次,并输出结果
print(name.count("l",0,4))
16) 从name变量对应的值中找到"N"对应的索引(如果找不到则报错),并输出结果
print(name.find("N",0,))
17) 从name变量对应的值中找到"N"对应的索引(如果找不到则返回-1)输出结果
print(name.index("N",0,))
18) 从name变量对应的值中找到"X le"对应的索引,并输出结果
print(name.find('X le'))
19) 请输出 name 变量对应的值的第 2 个字符?
print(name[1])
20) 请输出 name 变量对应的值的前 3 个字符?
print(name[0:3])
21) 请输出 name 变量对应的值的后 2 个字符?
print(name[-3:-1])
22) 请输出 name 变量对应的值中 "e" 所在索引位置?
print(name.find('e')

2,有字符串s = "123a4b5c"

1)通过对s切片形成新的字符串s1,s1 = "123"
2)通过对s切片形成新的字符串s2,s2 = "a4b"
3)通过对s切片形成新的字符串s3,s3 = "1345"
4)通过对s切片形成字符串s4,s4 = "2ab"
5)通过对s切片形成字符串s5,s5 = "c"
6)通过对s切片形成字符串s6,s6 = "ba2"
s = "123a4b5c"
print(s[0:3])
print(s[3:6])
print(s[0::2])
print(s[1:-1:2])
print(s[-1:])
# 这里的-2 是指:从右往左数,
s6 = s[-3::-2]
print("s6 = " + s6)

3,使用while和for循环分别打印字符串s="asdfer"中每个元素。

s="asdfer"
for i in s:
print(i,end=" ")
j = 0
while j<len(s):
print(s[j],end=" ")
j += 1
if j == len(s):
break


4,使用for循环对s="asdfer"进行循环,但是每次打印的内容都是"asdfer"。
for i in s:
print(i,end="") # end=""不换行且没间隔

5,使用for循环对s="abcdefg"进行循环,每次打印的内容是每个字符加上sb, 例如:asb, bsb,csb,...gsb。
for i in s:
print(i+"sb")
6,使用for循环对s="321"进行循环,打印的内容依次是:"倒计时3秒","倒计时2秒","倒计时1秒","出发!"。
s = "321"
for i in s:
print("倒计时%s秒" % i)
if int(i) == 1:
print("出发")
break
7,实现一个整数加法计算器(两个数相加):
如:content = input("请输入内容:") 用户输入:5+9或5+ 9或5 + 9,然后进行分割再进行计算。

content = input("请输入内容:")
index = content.find("+") #查看+号的索引值,如果没有,返回-1
k1 = int(content[0:index])
k2 = int(content[index+1:])
print(k1+k2)

8,升级题:实现一个整数加法计算器(多个数相加):
如:content = input("请输入内容:") 用户输入:5+9+6 +12+ 13,然后进行分割再进行计算。

list = input("请输入内容:").split("+")
sum = 0
for i in list:
sum = sum+int(i)
print(sum)

9,计算用户输入的内容中有几个整数(以个位数为单位)。
如:content = input("请输入内容:") # 如fhdal234slfh98769fjdla

content = input("请输入内容:")
count = 0
for i in content:
if i.isdigit(): #判断i是否为整数
count += 1
print(count)

10、写代码,完成下列需求:
用户可持续输入(用while循环),用户使用的情况:
输入A,则显示走大路回家,然后在让用户进一步选择:
是选择公交车,还是步行?
选择公交车,显示10分钟到家,并退出整个程序。
选择步行,显示20分钟到家,并退出整个程序。
输入B,则显示走小路回家,并退出整个程序。
输入C,则显示绕道回家,然后在让用户进一步选择:
是选择游戏厅玩会,还是网吧?
选择游戏厅,则显示 ‘一个半小时到家,爸爸在家,拿棍等你。’并让其重新输入A,B,C选项。
选择网吧,则显示‘两个小时到家,妈妈已做好了战斗准备。’并让其重新输入A,B,C选项。


while True:
  content = input("请输入你要执行的操作:A-走大路,B-走小路,C-绕道回家:")
  if content == "A":
    print("走回去")
    msg = input("请输入你的回家方式,公交车-1,步行-2:")
    if msg == "1":
      print("10分钟到家")
      break
    else:
      print("20分钟到家")
      break
  elif content == "B":
    print("走小路回家")
    break
  elif content == "C":
    print("绕道回家")
    msg_num02 = input("请输入你的选择,游戏厅-2,网吧-1:")
    if msg_num02 == "1":
      print('两个小时到家,妈妈已做好了战斗准备。')
      continue
    else:
      print("一个半小时到家,爸爸在家,拿棍等你。")
      continue
  else:
  print("你输入错误,请重新输入")

 

习题来自网上找到的老男孩python日常习题,都是我在pycharm上敲的,本人自学,习题会继续更新,接收大家批评教育,谢谢。

原文地址:https://www.cnblogs.com/yan-xuwei666/p/10068250.html