Python的早期练习题-1

匿名 (未验证) 提交于 2019-12-02 22:11:45

这是一些从我的github repo 拿回来的很早的笔记

  • python 的脚本式运行
%run d:/1.py 
这是脚本式运行Python! 

练习题

1、 求从1到100的数字中所有能既能被3整除,又能被5整除的数字有哪些。

LsNum = [] for i in range(1,101):     if i%3 == 0 and i%5 == 0 :         LsNum.append(i)  print(LsNum) 
[15, 30, 45, 60, 75, 90] 

2、 输入一个字符串返回满足以下条件的字符串

  • 如果字符串长度大等于3,添加 ‘ing’ 到字符串的末尾
  • 如果字符串是以 ‘ing’ 结尾的,就在末尾添加 ‘ly’
  • 如果字符串长度小于3,返回原字符串
StrInput = input("请输入字符串:")  StrLength = len(StrInput)  if StrLength < 3:     NewStr = StrInput if StrLength >= 3 :     if StrInput.endswith("ing"):         NewStr = StrInput + "ly"     else:         NewStr = StrInput + "ing"      print(NewStr) 
请输入字符串:aaing aaingly 

3、 判断是否为回文

  • 提示:回文:62426是回文数字
NumInput = input("请输入数字:")  OpNumInput = NumInput[::-1]  if OpNumInput == NumInput:     print(NumInput,"是回文数字") else:     print(NumInput,"不是回文数字") 
请输入数字:12321 12321 是回文数字 

4、 输入一个字符串,返回满足以下条件字符串

  • 找到字符串中的子串 ‘not’ 和 'bad’
  • 如果 ‘bad’ 出现在 ‘not’ 后面,就把 ‘not’ … ‘bad’ 之间包含的所有字符串替换成 ‘good’
StrInput = input("请输入字符串:")  Not = StrInput.find("not") Bad = StrInput.find("bad") if Not != -1 and Bad != -1 :     if Not < Bad:         StrInput = StrInput[:Not+3] + "good" +StrInput[Bad:]      print(StrInput) 
请输入字符串:asdafasnotasdfsagbad asdafasnotgoodbad 

5、 输入一个字符串,把字符串拆分成两个等分

  • 如果字符串长度是偶数,前一半和后一半的长度是相同的
  • 如果字符串长度是奇数,则多出的一个字符加到前一半,如:‘abcde’,前一半是’abc’,后一半是’de’
StrInput = input("请输入字符串:") StrLength = len(StrInput)  if StrLength % 2 == 0:      StrMid = int(StrLength/2)     StrA = StrInput[:StrMid]     StrB = StrInput[StrMid:] else: #5     StrMid = int((StrLength-1)/2) + 1     StrA = StrInput[:StrMid]     StrB = StrInput[StrMid:] print(StrA,StrB) 
请输入字符串:abcde abc de 

6、 输入一个字符串返回满足以下条件的字符串

  • 找出与字符串的第一个字母相同的字母,把它们替换成 ‘*’,除了第一个字母本身以外
  • 例如: 输入’babble’, 返回 ‘ba**le’
StrInput = input("请输入字符串:")  StrInput = StrInput[0] + StrInput[1:].replace(StrInput[0],"*")  print(StrInput) 
请输入字符串:asdffaaas asdff***s 

7、 输入一个字符串 返回满足以下条件的字符串

  • 由字符串的最前面两个字母和最后两个字母组成的字符串。
  • 例如: ‘spring’ 返回 ‘spng’, ‘is’ 返回 'is’
  • 当输入的字符串长度小于2时,返回空字符串
StrInput = input("请输入字符串:")  StrLength = len(StrInput)  if StrLength < 2:     StrReturn = '' elif 2 <= StrLength <= 4 :     StrReturn = StrInput else:     StrReturn = StrInput[:2] + StrInput[-2:]      print(StrReturn) 
请输入字符串:spring spng 

8、 输入字符串 a 和 b,返回添加以下条件的字符串

  • 交换两个字符串的最前面的两个字母
  • 使用空格把两个字符串分隔后合并成一个字符串
  • 字符串 a 和 b 的长度都大等于2
#获取字符串  a = input("请输入第一个字符串:") b = input("请输入第二个字符串:")  while len(a) < 2 and len(b) < 2 :     print("警告!请输入长度大于2的字符串!")     a = input("请输入第一个字符串:")     b = input("请输入第二个字符串:") 
请输入第一个字符串:abcd 请输入第二个字符串:efgh 
a1 = a[:2] b1 = b[:2] a = b1 + a[2:] b = a1 + b[2:] 
def kongge(Str):     Length = len(Str)     Str_1 = ""     for i in range(Length):          Str_1 = Str_1 + Str[i] + " "     return Str_1  print(kongge(a) + kongge(b)) 
e f c d a b g h  

9、 落球计算

  • 一球从100米高度自由落下,假设每次落地后反跳回原高度的一半;再落下,再弹起。请问第6次落地后会弹起多少米?
  • 使用for与while循环完成
def DownBall(high,Times):     for i in range(Times):         high = high / 2     print("第{}次落地后会弹起{}米".format(Times,high))  DownBall(100,6) 
第6次落地后会弹起1.5625米 

作业

  • 求两个数字之间的素数
  • 素数:只能被1及自己整除的数,如3,7,13,23等
NumInput1 = eval(input("请输入第一个数字:")) NumInput2 = eval(input("请输入第二个数字:"))  if NumInput1 > NumInput2:     NumInput1,NumInput2 = NumInput2,NumInput1  NumList = list(range(NumInput1,NumInput2))  SuNum = [] for k in NumList:     for i in range(2,i+1):         if k%i == 0:             SuNum.append(k)  for i in SuNum:     NumList.remove(i)      print("素数",NumList) print("非素数",SuNum) 
请输入第一个数字:10 请输入第二个数字:15 素数 [11, 13] 非素数 [10, 12, 14] 

本次课程收获

  • 对于str.find() 其未查找到时,返回值为-1
  • 在取整数商时,也可以是使用“//”整除,而不仅仅使用对被减数,加减一,实现奇偶数的取整除
  • 尽量多使用容器

课程之外的收获

  • 对于代码能力,需要多动手操作,动手实现,并想出多的解决方案
  • 思考,比如,最后的作业题,我使用的方法是寻找非素数,进而反推回素数,这样的逆向思维,也是需要多加练习的
  • 代码,最重要的是逻辑思考能力,在今天的写代码的时候,有些地方会想不明白,需要代入一个值进行测试,验证自己的代码,其实这样简单的地方并不是需要测试
文章来源: https://blog.csdn.net/weixin_43930330/article/details/90442811
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!