一味真药 發表於 2022-3-26 14:34:00

Python 第三次实验

<font size="4">
一如既往地简单,不到半个小时即可完成
<p>【1】 (程序设计)输入一个正整数,输出它的因子分解式。如输入132,则输出132=1<em>2</em>2<em>3</em>11</p>
<pre><code class="language-python">n=int(input())
print(1,end='')
for i in range(2,n+1):
    while(n%i==0):
      n=n/i
      print('*',i,sep='',end='')
</code></pre>
<p>【2】 (程序设计)用户输入一行字符串,统计并输出其中空格、数字、英文字母、其他字符的个数,输入输出格式如下:<br>
例如:<br>
请输入字符串:Version 3.1415<br>
输入的字符串有1个空格,5个数字,7个英文字母,1个其它字符</p>
<pre><code class="language-python">str=input()
ans_space=0
ans_num=0
ans_other=0
ans_alphabet=0
for s in str:
    if('0'&lt;=s&lt;='9'):
      ans_num=ans_num+1
    elif('a'&lt;=s&lt;='z' or 'A'&lt;=s&lt;='Z'):
      ans_alphabet=ans_alphabet+1
    elif(s==' '):
      ans_space=ans_space+1
    else:
      ans_other=ans_other+1

print('输入的字符串有{}个空格,{}个数字,{}个英文字母,{}个其它字符'.format(ans_space,ans_num,ans_alphabet,ans_other))
</code></pre>
<p>【3】 (程序设计)输入两个正整数,输出这两个数之间有多少个数含有数字8。比如输入170和200,则在170和200之间有12个数含有8,则输出12。</p>
<pre><code class="language-python">def check(x):
    if x%10==8:
      return 1
    if x==0:
      return 0
    return check(x//10)

l=int(input('请输入第一个正整数:'))
r=int(input('请输入第二个正整数:'))
ans=0
for i in range(l,r+1):
    ans=ans+check(i)
print('{}和{}之间有{}个数含有数字8'.format(l,r,ans))
</code></pre>
<p>【4】 (程序设计)编写程序,输入正整数a和b,产生a个范围在的随机整数。输出这a个随机数(每行5个,数据之间用一个空格隔开),找出能被b整除的数据个数。注意:不能使用列表、元组、集合、字典等组合数据类型。</p>
<pre><code class="language-python">import random

a=int(input('请输入整数a:'))
b=int(input('请输入整数b:'))
ans=0
for i in range(a):
    x=random.randint(100,999)
    print(x,end=' ')
    if(i%5==4):
      print('')
    if(x%b==0):
      ans=ans+1
print('总共{}个数能被{}整除'.format(ans,b))
</code></pre>
<p>【5】 (程序设计)设计一个函数 func(a),它接受一个正整数a,函数返回这个数字每个位上数字的和(函数内不能有input,print语句,不能使用global语句),例如,func(123),返回6,因为1+2+3=6。</p>
<pre><code class="language-python">def func(x):
    if(x==0):
      return 0
    return x%10+func(x//10)

n=int(input('请输入一个整数:'))
print('它的各位数字之和为',func(n),sep='')
</code></pre>
<p>【6】 (程序设计)设计一个函数func(s),它接受一个字符串变量s,返回其中大写字母的个数。</p>
<pre><code class="language-python">def func(str):
    ans=0
    for s in str:
      if('A'&lt;=s&lt;='Z'):
            ans=ans+1
    return ans


str=input()
print(func(str))
</code></pre>
<p>【7】 (程序设计)定义一个函数,该函数返回参数字符串中包含多少个数字、多少个英文字母。</p>
<pre><code class="language-python">def get(str):
    ans_num=0
    ans_alphabet=0
    for s in str:
      if '0'&lt;=s&lt;='9':
            ans_num=ans_num+1
      if 'a'&lt;=s&lt;='z' or 'A'&lt;=s&lt;='Z':
            ans_alphabet=ans_alphabet+1
    return

str=input()
ret=get(str)
print('字符串里有{}个数字,{}个字母'.format(ret,ret))
</code></pre>
<p>【8】 (程序设计)区间素数和。输入两个正整数m,n ( m &lt; n),编写程序求之间的所有素数的和。要求定义函数def IsPrime(m)判断整数m是否是素数,如果是素数返回True否则返回False。</p>
<pre><code class="language-python">def IsPrime(m):
    i=2
    while i*i&lt;=m:
      if(m%i==0):
            return 0
      i=i+1
    return 1

m=int(input('请输入整数m:'))
n=int(input('请输入整数n:'))
ans=0
for i in range(m,n+1):
    if(IsPrime(i)):
      ans=ans+i
print('范围在[{},{}]的素数和为{}'.format(m,n,ans))
</code></pre>
</font><br><br>
来源:https://www.cnblogs.com/alphainf/p/16058763.html
頁: [1]
查看完整版本: Python 第三次实验