Pythonのに演習2019年7月18日の五日目を学びます
1)変数名に対応する空間値の両側に除去し、処理結果を出力します
プログラムコード:
name = " aleX"
if name[0]==' ':
name=name[1:]
if name[-1]==' ':
name=name[:-1]
print(name)
結果:
ALEX
2)変数名に対応する値が「アル」で始まるかどうかを決意し、その結果を出力します
プログラムコード:
name = " aleX"
if name[:2]=='al':
print('name变量是以al开头的')
else:
print('name变量不是以al开头的')
結果:
変数名はアルで始まりません
3)変数名に対応する最後の「X」の値か否かが判断される、その結果を出力します
プログラムコード:
name = " aleX"
if name[-1]=='X':
print("name变量是以X为结尾的")
else:
print("name变量不是以X为结尾的")
結果:
Xは、で終わる変数名です
4)「L」の変数名に対応する値を「P」に置き換え、その結果を出力します
プログラムコード:
name = " aleX"
num = len(name)
for i in range(num):
if name[i]=='l':
name = name.replace('l','p')
print(name)
結果:
頂点
5)「L」部門に応じて対応する変数の値の名前を、その結果を出力します
プログラムコード:
name = " aleX"
new_name = name.split('l')
print(new_name)
結果:
[ 'A'、 'のeX']
6)名前は、大文字に対応する変数の値となり、その結果を出力します
プログラムコード:
name = " aleX"
new_name = name.upper()
print(new_name)
結果:
ALEX
7)変数値に対応する名称は小文字、及び出力となります
プログラムコード:
name = " aleX"
new_name = name.lower()
print(new_name)
結果:
アレックス
8)変数名に対応する第二の文字出力値を作成します
プログラムコード:
name = " aleX"
print(name[1])
結果:
A
9)変数名に対応する最初の3つの文字の出力値を作成します
プログラムコード:
name = " aleX"
print(name[:3])
結果:
アル
10)変数名文字2に対応する要求された値を出力します
プログラムコード:
name = " aleX"
print(name[-2:])
結果:
エクス
ここで、「E」位置変数名インデックスに対応する11)要求出力値
プログラムコード:
name = " aleX"
num = len(name)
for i in range(num):
if name[i] == 'e':
print(i)
結果:
3
12)収集シーケンスを、最後の文字を削除します。以下のような:oldboyその後、oldbo取得
プログラムコード:
name = " aleX"
new_name = name[:-1]
print(new_name)
結果:
しかし
1.以下のデータは、辞書型として格納されています
# # 数据:info = "name:Owen|age:18|gender:男"
# # 结果:{'name': 'Owen', 'age': 18, 'gender': '男'}
プログラムコード:
info = "name:Owen|age:18|gender:男"
new_info = info.split('|')
dict_info = {}
list_info=[]
num = len(new_info)
for i in range(num):
list_info += new_info[i].split(':')
list_num = len(list_info)
for i in range(0,list_num,2):
dict_info.setdefault(list_info[i],list_info[i+1])
print(dict_info)
結果:
{ '名前': 'オーウェン'、 '年齢': '18'、 '性別': '男'}
2.完全なデータ重複除外
# # 数据:t3 = [1, 2, 1, 2, 3, 5, 9]
# # 结果:t3 = [1, 2, 3, 5, 9]
プログラムコード:
t3 = [1, 2, 1, 2, 3, 5, 9]
# 先将序列转为集合去除重复值,再将集合转回序列输出
new_t3 = list(set(t3))
print(new_t3)
結果:
[1、2、3、5、9]
3 [... 11,22,33,44,55,66,77,88,99,90]セットの次の値を持っています
# # 将所有大于 66 的值保存至字典的第一个key中
# # 将小于 66 的值保存至第二个key的值中
# # 即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
プログラムコード:
list_str = [11,22,33,44,55,66,77,88,99,90]
k1_list,k2_list = [],[]
for i in list_str:
if i>66:
k1_list.append(i)
else:
k2_list.append(i)
dict_str = {'k1':k1_list,'k2':k2_list}
print(dict_str)
結果:
{ 'K1':[77、88、99、90]、 'K2':[11、22、33、44、55、66]}
4.完全な電話帳エントリ(オプション)
# # 需求:
# '''
# -- 从键盘中录入姓名(不区分大小写):
# -- 姓名必须是全英文字母组成,不是则重新录入姓名,如果是q,代表退出
# -- 从键盘中再录入电话:
# -- 电话必须为字符串中是数字(如'12312312312')且长度必须是11位
# -- 如果出现姓名相同,则保留最后一次电话号码
# -- 形成的数据是有电话分组的,如:第一次录入Owen,13355667788,则会形成
# -- {
# 'O': {
# 'Owen': '13355667788'
# }
# }
# 最终数据,分组名一定大写:
# {
# 'E': {
# 'egon': '17788990000',
# 'engo': '16633445566'
# },
# 'O': {
# 'Owen': '13355667788'
# }
# }
# '''
プログラムコード:
# 定义一个字典电话本,用来接收存储的信息
dict_nums = {}
# 定义一个信息字典,用来存储姓名和手机号码
dict_info = {}
# 定义一个用来接收新的信息的字典
# 定义个序列用来判断输入的name是否有数字
list_num = ['0','1','2','3','4','5','6','7','8','9']
# 定义一个用来判断的变量
check_name_boolen = True
# 用来判断是不是要退出整个程序
check_quit = True
check_num_boolen = True
# 定义一个判断输入姓名的函数
def check_name(name):
global check_name_boolen
for i in name:
if i in list_num:
print("你输入的name中包含了数字,请重新输入!")
check_name_boolen = False
break
else:
check_name_boolen = True
return check_name_boolen
# 定义一个判断输入姓名的函数
def check_num(num):
global check_num_boolen
num_len = len(num)
for i in num:
if i not in list_num or num_len !=11:
print("你输入的电话号码有误,需要重新输入!")
check_num_boolen = False
break
else:
check_num_boolen = True
return check_num_boolen
#### 程序主题
while check_quit:
name = input("请输入姓名(要求为大小写英文,输入数字需重新输入,按q退出):")
# 对name值进行判断
if name=='q':
print("你选择了退出程序!")
check_quit = False
break
check_name(name)
while check_name_boolen != True:
name = input("请输入姓名(要求为大小写英文,输入数字需重新输入,按q退出):")
check_name(name)
if name == 'q':
print("你选择了退出程序!")
check_quit = False
break
num = input("请输入手机号码(要求长度为11位且必须都为数字,输入错误需重新输入):")
# 对输入的电话号码进行判断
check_num(num)
while check_num_boolen != True:
num = input("请输入手机号码(要求长度为11位且必须都为数字,输入错误需重新输入):")
check_num(num)
# 到了这的时候就已经能够拿到了 有效的输入数据 name 和num.接下来要做的就是将这些数据放到字典中就行了
new_dict = {name,num}
old_dict = dict_nums.values()
if dict_info == {}:
dict_info.setdefault(name,num)
else:
for i in dict_info.keys():
if i == name:
dict_info[name] = num
dict_info.setdefault(name, num)
# check_quit = False
#for i in dict_nums.keys():
if dict_nums == {}:
dict_nums.setdefault(name[0].upper(), dict_info)
else:
for i in dict_nums.keys():
if i == name[0].upper():
dict_nums[i] = new_dict
dict_nums.setdefault(name[0].upper(), new_dict)
print(dict_nums)
結果:
(英語を書くために必要な、終了するには再入力、プレスQする番号を入力してください)あなたの名前を入力してください:永遠に
あなたの携帯電話番号入力します(11の必要な長さを、デジタル入力エラーが再入力する必要があります持っている必要があります)してください:13721111111
(あなたの名前を入力してくださいオーウェンは:)、英語を書く終了する再入力、プレスQする番号を入力する必要が
11の携帯電話番号(必要な長さを入力し、デジタル入力エラーが再入力する必要があります持っている必要がありますしてください):12233445566
(あなたの名前を入力してください資本要件は、英語は、プレスq)が終了して再入力する番号を入力してください:Q
あなたがプログラムを終了することを選択しました!
{ 'F' { '永遠 ': '13721111111'、 'オーウェン': '12233445566'}、 'O':{ 'オーウェン'、 '12233445566'}}
最後の質問の問題があり、また、変更する必要があります