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