Scanner one = new Scanner(System.in);
System.out.print("Enter Name: ");
name = one.nextLine();
System.out.print("Enter Date of Birth: ");
dateofbirth = one.nextLine();
System.out.print("Enter Address: ");
address = one.nextLine();
System.out.print("Enter Gender: ");
gender = //not sure what to do now
Run Code Online (Sandbox Code Playgroud)
嗨,我已经尝试过自己解决这个问题,但是我不能从其他例子中得到它,大多数只是接受某些字符或者A-Z + az
我试图让程序只接受男性或女性的输入忽略大小写,如果输入错误则重复"输入性别:"直到输入正确的值.
下面的代码块可以工作,但是由于我对使用JSON的了解有限,我不满意它的最佳选择,但是我似乎无法找出一种更有效的方法。
该steam_game_db是这样的:
{
"applist": {
"apps": [
{
"appid": 5,
"name": "Dedicated Server"
},
{
"appid": 7,
"name": "Steam Client"
},
{
"appid": 8,
"name": "winui2"
},
{
"appid": 10,
"name": "Counter-Strike"
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我的Python代码是
i = 0
x = 570
req_name_from_id = requests.get(steam_game_db)
j = req_name_from_id.json()
while j["applist"]["apps"][i]["appid"] != x:
i+=1
returned_game = j["applist"]["apps"][i]["name"]
print(returned_game)
Run Code Online (Sandbox Code Playgroud)
除了遍历整个应用程序列表之外,还有一种更聪明的方法来搜索它吗?理想情况下,数据结构中带有“ appid”和“ name”的元素编号为其对应的“ appid”
即列表中的appid 570是Dota2,但是appid 5069和Red Faction中数据结构中的元素570
另外,这是什么类型的数据结构?也许它已经限制了我对此答案的搜索能力。(对于我来说,每个元素似乎都是“ appid”和“ element”的字典?)
编辑:根据建议更改为for循环
# returned_id string for appid from another query …Run Code Online (Sandbox Code Playgroud)