python打卡day1

●题目: 定义三个变量 a, b, c,并分别将整数 1, 2, 3 赋值给它们。然后,使用 print() 函数将每个变量的值单独打印出来,每个值占一行。
●输入: 无
●输出:
a=1
b=2
c=3
print(a)
print(b)
print(c)
# ... existing code ...
print(a, b, c, sep='\n')
# ... existing code ...
●题目: 创建两个变量:name 存储你的名字(字符串,例如 "小明"),city 存储你所在的城市(字符串,例如 "北京")。使用 f-string 将这两个变量组合成一句话并打印出来。
●输入: 无
●输出: (请注意输出格式中的逗号和空格)

 name1=小明
 city1=北京
 print(f‘姓名:’{name1},城市:{city1})
这段代码存在几个语法错误,下面为你详细分析并给出修正后的代码:

### 错误分析
1. 空格问题 :Python 是对缩进敏感的语言,但在变量赋值时,行首不应该有多余的空格。
2. 中文变量名 :Python 虽然支持中文变量名,但在实际开发中不建议使用,因为可能会引发编码问题,且不符合编程规范。
3. 中文括号和引号 :代码里使用了中文的括号 ( 和单引号 ‘ ,在 Python 中需要使用英文的括号 () 和单引号 ' 或者双引号 " 。
4. f-string 语法错误 :f-string 的正确语法是把变量名放在大括号 {} 内,并且整个字符串需要用引号括起来。
name2=小明
city2=北京
print (f'姓名{name2},城市{city2}')
### 1. 中文变量值未加引号
在 Python 里,字符串类型的值需要用单引号 ' 、双引号 " 或者三引号 ''' / """ 括起来。代码里的 小明 和 北京 属于字符串,却没有用引号括起来,Python 会把它们当成未定义的变量,从而引发 NameError 。

### 2. print 函数调用存在多余空格
在 print 关键字和括号之间有多余的空格,虽然 Python 允许在函数名和括号之间有空格,但这不符合 PEP 8 代码风格规范,建议去掉空格。
name1="小明"
city1="北京"
print(f'姓名{name1},城市{city1}')
name1="小明"
city1="北京"
print(f'{name1}住在{city1}')
●如果想在输出的姓名两边加上引号,例如 姓名: "小明", 城市: 北京,f-string 语句应该怎么写?

●只用一个 print() 和 f-string,如何让姓名和城市分两行输出?
name3="ming"
city3="nanjing"
print(f'姓名:"{name3}",城市:{city3}')
name4="gao"
city4="liu"
print(f'{name4},{city4}',sep="\n")
代码没有让 name4 和 city4 分行输出的原因在于对 print() 函数的 sep 参数理解有误。 sep 参数用于定义当 print() 函数接收多个参数时,这些参数之间的分隔符。而在你的代码里, print() 函数只接收了一个参数 f'{name4},{city4}' ,这个参数是一个格式化后的字符串,所以 sep 参数不会生效。

以下是修正后的代码,有两种方式可以实现分行输出:
方式一:使用多个参数和 sep 参数
# ... existing code ...
name4="gao"
city4="liu"
print(name4, city4, sep="\n")
# ... existing code ...

方式二:在格式化字符串中使用换行符 \n
# ... existing code ...
name4="gao"
city4="liu"
print(f'{name4}\n{city4}')
# ... existing code ...
在第一种方式中, print() 函数接收两个参数 name4 和 city4 , sep="\n" 让这两个参数分行输出。在第二种方式中,直接在格式化字符串里使用 \n 来实现换行。
print(name4,city4,sep="\n")
●题目: 定义两个整数变量,num1 赋值为 20,num2 赋值为 8。计算这两个变量的和,并将结果存储在一个新的变量 a 中;
计算这两个变量的商,叫做b;
计算这两个变量的余数,叫做c。
然后,使用 f-string 打印出类似 “20 加 8 的结果是:28” 的信息,分成三行打印。

num1=20
num2=8

a=num1+num2
b=num1/num2
c=num1%num2
print(f'{num1}+{num2}的结果是:{a}')
print(f'{num1}/{num2}的结果是:{b}')
print(f'{num1}%{num2}的余数是:{c}')

num1=20
num2=8

a=num1+num2
b=num1/num2
c=num1%num2
print(f'{num1}+{num2}的结果是:{a}')
print(f'{num1}/{num2}的结果是:{b}')
print(f'{num1}%{num2}的余数是:{c}')
如果我想将这三行代码合并为一行代码,并且将结果分三行输出,应该如何操作?
num1=20
num2=8

a=num1+num2
b=num1/num2
c=num1-num2

print(f'{num1}+{num2}的结果是:{a}\n{num1}/num2的结果是:{b}\n{num1}-{num2}的结果是:{c}')
num1=20
num2=8

a=num1+num2
b=num1/num2
c=num1%num2
print(num1+num2的结果是:a)

代码 print(num1+num2的结果是:a) 报错的原因主要是语法问题,具体如下:

### 1. 缺少字符串引号
在 Python 里,要打印一段文本和变量组合的内容,这段文本需要用引号(单引号 ' 、双引号 " 或者三引号 ''' / """ )括起来。当前代码没有使用引号,Python 会把 num1+num2的结果是:a 当作一个未定义的变量或者表达式,从而引发语法错误。

### 2. 未使用 f-string 正确格式化
若要将变量的值插入到字符串中,应该使用 f-string 语法,即在字符串前加 f ,并把变量名放在大括号 {} 内。
num1=20
num2=8

a=num1+num2
b=num1/num2
c=num1%num2
print("num1"+"num2"的结果是:"a")
代码 print("num1"+"num2"的结果是:"a") 报错主要有以下几个原因:

### 1. 字符串拼接问题
在 Python 里,若要拼接字符串,每个部分都需要用引号括起来。当前代码中 "num1"+"num2" 会拼接成 "num1num2" ,但后续的 "的结果是:" 和 "a" 并没有正确地拼接在一起,而且整个表达缺少完整的引号包裹。

### 2. 未使用变量值
代码本意可能是想输出 num1 和 num2 变量的值以及它们运算结果 a 的值,但直接写 "a" 只是输出字符串 "a" ,而不是变量 a 的值。要输出变量的值,需要使用 f-string 或者其他字符串格式化方法。

### 3. 缺少 f-string 语法
若要在字符串中插入变量的值,应该使用 f-string 语法,即在字符串前加 f ,并把变量名放在大括号 {} 内。
num1=20
num2=8

a=num1+num2
b=num1/num2
c=num1%num2
print("num1""+""num2""的结果是:""a")
代码 print("num1""+""num2""的结果是:""a") 没有读取上面赋值的原因在于,你使用的是普通字符串,而非格式化字符串。在当前代码里, "num1" 、 "+" 、 "num2" 、 "的结果是:" 和 "a" 都是普通的字符串字面量,Python 会将它们拼接成 "num1+num2的结果是:a" 并直接输出,并不会把 num1 、 num2 和 a 当作变量来解析。

若要让 print 函数输出变量的值,需要使用 f-string 语法。在字符串前添加 f 或者 F ,然后把变量名放在大括号 {} 内。以下是修正后的代码
# ... existing code ...
print(f'{num1}+{num2}的结果是:{a}')
# ... existing code ...
● 题目: 定义两个浮点数变量,price 赋值为 19.9,discount 赋值为 0.8 (表示 8 折)。计算折扣后的价格,并将结果存储在变量 final_price 中;计算节省了多少钱,存储在变量 saved_amount 中。然后,使用 f-string 分两行打印出类似以下格式的信息:
最终价格是: 15.92
节省金额是: 3.98

price=19.9
discount=0.8

final_price=price*discount
save_amount=price-final_price

print(f'最终价格是:{final_price}\n节省金额是:{save_amount}')
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值