8.甲、⼄、丙、丁四⼈中有⼀⼈做了好事不留姓名。请⼤家编写程序,根据以下线索找出做好事的⼈。 甲:不是我 ⼄:是丙 丙:是丁 丁:丙说的不对 其中三⼈说的是真话,⼀⼈说的是假话。
时间: 2024-05-01 11:17:36 浏览: 130
ChitGPT: 这是一道经典的逻辑谜题,我们可以用程序来解决。首先,我们可以将四个人的说话分别用 A、B、C、D 表示。做好事的人用 H 表示。然后,我们可以通过循环遍历四个人的可能性,并根据他们的说话情况来进行排除。代码如下:
```python
for H in ['甲', '乙', '丙', '丁']:
# 三个人说的是真话,一个人说的是假话
true_cnt = 0
false_cnt = 0
if H != '甲':
true_cnt += 1
if H == '丙':
true_cnt += 1
if H == '丁':
false_cnt += 1
if false_cnt == 1 and true_cnt == 3:
print(H + '是做了好事的人')
```
这样我们就可以得到答案:做好事的人是乙。
相关问题
用python数据库编写代码 1.创建⼀个学⽣成绩表 Grades, 学号 姓名 成绩 名次 2.往表中插⼊10数据 3.查询成绩⼤于60分的⼈的名字 4.查询成绩⼩于60分的⼈的个数 5.把成绩⼩于60分的⼈的成绩修改为60分 6.删除所有学号⼩于100的⼈的信息 7.查询姓“张”的⼈的所有信息 8.查询所有⼈的成绩,按照成绩从⾼到低排列 9.查询所有⼈的成绩,按照名次从⼩到⼤排列
下面是使用 Python 和 MySQL 数据库实现上述功能的代码示例:
```python
import mysql.connector
# 连接数据库
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="testdb"
)
# 创建学生成绩表
mycursor = mydb.cursor()
mycursor.execute("CREATE TABLE Grades (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), score INT, rank INT)")
# 插入10条数据
students = [("Alice", 90), ("Bob", 80), ("Charlie", 70), ("David", 60), ("Emma", 50), ("Frank", 40), ("Grace", 30), ("Harry", 20), ("Isabel", 10), ("Jack", 0)]
for i, student in enumerate(students):
name, score = student
rank = i + 1
sql = "INSERT INTO Grades (name, score, rank) VALUES (%s, %s, %s)"
val = (name, score, rank)
mycursor.execute(sql, val)
mydb.commit()
# 查询成绩大于60分的人的名字
sql = "SELECT name FROM Grades WHERE score > 60"
mycursor.execute(sql)
result = mycursor.fetchall()
print("成绩大于60分的人的名字:")
for x in result:
print(x[0])
# 查询成绩小于60分的人的个数
sql = "SELECT COUNT(*) FROM Grades WHERE score < 60"
mycursor.execute(sql)
result = mycursor.fetchone()
print("成绩小于60分的人的个数:", result[0])
# 把成绩小于60分的人的成绩修改为60分
sql = "UPDATE Grades SET score = 60 WHERE score < 60"
mycursor.execute(sql)
mydb.commit()
# 删除所有学号小于100的人的信息
sql = "DELETE FROM Grades WHERE id < 100"
mycursor.execute(sql)
mydb.commit()
# 查询姓“张”的人的所有信息
sql = "SELECT * FROM Grades WHERE name LIKE '张%'"
mycursor.execute(sql)
result = mycursor.fetchall()
print("姓“张”的人的所有信息:")
for x in result:
print(x)
# 查询所有人的成绩,按照成绩从高到低排列
sql = "SELECT * FROM Grades ORDER BY score DESC"
mycursor.execute(sql)
result = mycursor.fetchall()
print("所有人的成绩,按照成绩从高到低排列:")
for x in result:
print(x)
# 查询所有人的成绩,按照名次从小到大排列
sql = "SELECT * FROM Grades ORDER BY rank ASC"
mycursor.execute(sql)
result = mycursor.fetchall()
print("所有人的成绩,按照名次从小到大排列:")
for x in result:
print(x)
```
在上面的代码中,我们首先连接到 MySQL 数据库。然后,我们创建一个名为 `Grades` 的表,并向其中插入10条数据。接下来,我们执行一些查询和更新操作,并打印结果。注意,在 Python 中,我们使用 `mysql.connector` 模块来连接和操作 MySQL 数据库。
python下SQlite数据库练习实例 1.创建⼀个学⽣成绩表 Grades, 学号 姓名 成绩 名次 2.往表中插⼊10数据 3.查询成绩⼤于60分的⼈的名字 4.查询成绩⼩于60分的⼈的个数 5.把成绩⼩于60分的⼈的成绩修改为60分 6.删除所有学号⼩于100的⼈的信息 7.查询姓“张”的⼈的所有信息 8.查询所有⼈的成绩,按照成绩从⾼到低排列 9.查询所有⼈的成绩,按照名次从⼩到⼤排列
1. 创建学生成绩表 Grades:
```python
import sqlite3
conn = sqlite3.connect('grades.db')
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE Grades (
id INTEGER PRIMARY KEY,
name TEXT,
score INTEGER,
rank INTEGER
);
''')
conn.commit()
conn.close()
```
2. 向表中插入 10 条数据:
```python
conn = sqlite3.connect('grades.db')
cursor = conn.cursor()
for i in range(1, 11):
cursor.execute(f"INSERT INTO Grades (id, name, score, rank) VALUES ({i}, '学生{i}', {i*10}, NULL)")
conn.commit()
conn.close()
```
3. 查询成绩大于 60 分的人的姓名:
```python
conn = sqlite3.connect('grades.db')
cursor = conn.cursor()
cursor.execute("SELECT name FROM Grades WHERE score > 60")
result = cursor.fetchall()
print(result)
conn.close()
```
4. 查询成绩小于 60 分的人的个数:
```python
conn = sqlite3.connect('grades.db')
cursor = conn.cursor()
cursor.execute("SELECT COUNT(*) FROM Grades WHERE score < 60")
result = cursor.fetchone()[0]
print(result)
conn.close()
```
5. 把成绩小于 60 分的人的成绩修改为 60 分:
```python
conn = sqlite3.connect('grades.db')
cursor = conn.cursor()
cursor.execute("UPDATE Grades SET score = 60 WHERE score < 60")
conn.commit()
conn.close()
```
6. 删除所有学号小于 100 的人的信息:
```python
conn = sqlite3.connect('grades.db')
cursor = conn.cursor()
cursor.execute("DELETE FROM Grades WHERE id < 100")
conn.commit()
conn.close()
```
7. 查询姓“张”的人的所有信息:
```python
conn = sqlite3.connect('grades.db')
cursor = conn.cursor()
cursor.execute("SELECT * FROM Grades WHERE name LIKE '张%'")
result = cursor.fetchall()
print(result)
conn.close()
```
8. 查询所有人的成绩,按照成绩从高到低排列:
```python
conn = sqlite3.connect('grades.db')
cursor = conn.cursor()
cursor.execute("SELECT * FROM Grades ORDER BY score DESC")
result = cursor.fetchall()
print(result)
conn.close()
```
9. 查询所有人的成绩,按照名次从小到大排列:
```python
conn = sqlite3.connect('grades.db')
cursor = conn.cursor()
cursor.execute("SELECT * FROM Grades ORDER BY id ASC")
result = cursor.fetchall()
print(result)
conn.close()
```
阅读全文