浙大版《Pythonプログラム設計》テーマ集プログラミング問題第三章
39578 ワード
第3章-1身長より大きい平均値
第3章-2身分証明書の検査
第3章-3出力文字列における位置インデックス
第3章-4指定文字の検索
第3章-5文字変換
第3章-6整数の序列の中で出現する回数の最も多い数を求めます
第3章-7最大値とその下標を求める
第3章-8文字列逆順
第3章-9文字列を10進数整数に変換
第3章-10統計大文字子音アルファベット
第3章-11文字列並べ替え
第3章-12整数の桁数と各位の数字の和を求めます
第3章-13文字列置換
第3章-14文字列アルファベットの大文字と小文字の変換
第3章-15 1行テキストの単語数を統計する
第3章-16重複文字の削除
第3章-17削除文字
第3章-18重複しない英字を10個出力
第3章-19最長の文字列を探す
第3章-20逆順の3桁
第3章-21判断回文文字列
第3章-22大文字英字出力
l=list(map(int,input().split()))
average=sum(l)/len(l)
for i in l:
if i>average:
print(i,end=' ')
第3章-2身分証明書の検査
l=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2] #
zm=['1','0','X','9','8','7','6','5','4','3','2'] #
n=int(input())
cnt=0
for i in range(n):
id=input()
sum=0
for i in range(17):
if id[i].isdigit():
sum+=l[i]*int(id[i])
else:
print(id)
break
if i==16: # 17
z=sum%11
if zm[z]!=id[-1]:
print(id)
else:
cnt+=1
if cnt==n:
print('All passed')
第3章-3出力文字列における位置インデックス
s=input()
char1,char2=input().split()
for i in range(len(s)-1,-1,-1):
if s[i]==char1 or s[i]==char2:
print(i,s[i])
第3章-4指定文字の検索
char=input()
s=input()
for i in range(len(s)-1,-1,-1):
if s[i]==char:
print('index =',i)
break
else:
print('Not Found')
第3章-5文字変換
s=input()
print(int(''.join([i for i in s if i.isdigit()])))
第3章-6整数の序列の中で出現する回数の最も多い数を求めます
l=list(map(int,input().split()))
n=l.pop(0)
cnt={}
for i in l:
cnt[i]=cnt.get(i,0)+1
for key,value in cnt.items():
if value==max(cnt.values()):
print(key,value)
第3章-7最大値とその下標を求める
n=int(input())
l=list(map(int,input().split()))
print(max(l),l.index(max(l)))
第3章-8文字列逆順
s=input()
print(s[::-1])
第3章-9文字列を10進数整数に変換
s=input()
sum=0
for i in s:
if i.isdigit():
sum=sum*16+ord(i)-48
if 'a'<=i<='f':
sum=sum*16+ord(i)-87
if 'A'<=i<='F':
sum=sum*16+ord(i)-55
for j in range(len(s)):
if s[j].isdigit() or 'a'<=s[j]<='f' or 'A'<=s[j]<='F':
break
if '-' in s and j>s.find('-'):
sum=-sum
print(sum)
第3章-10統計大文字子音アルファベット
l=['A','E','I','O','U']
s=input()
cnt=0
for i in s:
if i not in l and i.isupper():
cnt+=1
print(cnt)
第3章-11文字列並べ替え
print('After sorted:')
print(*sorted(list(input().split())),sep='
')
第3章-12整数の桁数と各位の数字の和を求めます
num=input()
s=[int(i) for i in num]
print(len(num),sum(s))
第3章-13文字列置換
s=input()
l=''
for i in s:
if i.isupper():
i=chr(90-(ord(i)-65)) #'Z' 'A'
l+=i
print(l)
第3章-14文字列アルファベットの大文字と小文字の変換
s=input()
s=s[:-1]
for i in s:
if i.isupper():
print(i.lower(),sep='',end='')
elif i.islower():
print(i.upper(),sep='',end='')
else:
print(i,sep='',end='')
第3章-15 1行テキストの単語数を統計する
s=list(input().split())
print(len(s))
第3章-16重複文字の削除
l=input()
for i in sorted(list(set([i for i in l]))):
print(i,sep='',end='')
第3章-17削除文字
s=input().strip()
c=input().strip()
result=[i for i in s if i!=c.lower() and i!=c.upper()]
print('result:',''.join(result))
第3章-18重複しない英字を10個出力
s=input()
l=''
for i in s:
if i.isalpha() and i.lower() not in l and i.upper() not in l:
l+=i
if len(l)==10:
break
if len(l)<10:
print('not found')
else:
print(l)
第3章-19最長の文字列を探す
n=int(input())
l=[]
max=0
maxi=0
for i in range(n):
s=input()
if len(s)>max:
max=len(s)
maxi=i
l.append(s)
print('The longest is:',l[maxi])
第3章-20逆順の3桁
x=int(input())
while x%10==0:
x=x//10
print(str(x)[::-1])
第3章-21判断回文文字列
s=input()
t=s[::-1]
print(s)
if s==t:
print('Yes')
else:
print('No')
第3章-22大文字英字出力
s=input()
l=''
for i in s:
if i.isupper() and i not in l:
l+=i
if len(l)==0:
print('Not Found')
else:
print(l)