Python打卡Day2

题目1:字符串操作

将不同字符串变量拼接,计算拼接后字符串长度,读取其中某一字符。

str1="Hello"
str2="World"
greeting=str1+" "+str2  ##直接拼接法
greeting=f"{str1} {str2}" ##使用f-string
print(greeting)
length=len(greeting)
print(f"字符串长度{length}")
first_char=greeting[0]
third_char=greeting[2]  ##正数索引
last_char=greeting[-1]  ##负数索引
print(f"第一个字符为{first_char}")
print(f"第三个字符为{third_char}")
print(f"最后一个字符为{last_char}")

题目2:变量的比较运算

定义两个变量并做计较运算

score_a=70
score_b=90
is_a_higher=score_a>score_b
is_a_lower_or_equal=score_a<=score_b
is_a_different=score_a!=score_b  ##计算三个布尔表达式结果
print(f"{score_a}是否大于{score_b}:{is_a_higher}")
print(f"{score_a}是否小于等于{score_b}:{is_a_lower_or_equal}")
print(f"{score_a}是否不等于{score_b}:{is_a_different}")

笔记

字符串拼接可以使用直接拼接法,或使用f_string拼接(中间要加空格),字符索引可以使用正数或负数索引,正数索引从左到右以0为起始,0为左边第一个字符,负数索引从右到左以-1为起始,-1为右边第一个字符。布尔表达式表格如下

表达式描述示例结果
a == b等于5 == 5 → True
a != b不等于5 != 3 → True
a > b大于5 > 3 → True
a < b小于5 < 3 → False
a >= b大于等于5 >= 5 → True
a <= b小于等于5 <= 3 → False

@浙大疏锦行

Python中实现打卡兑换礼物的功能,通常会涉及到以下几个步骤: 1. **数据结构设计**:创建一个数据库或数据结构来存储用户的打卡记录,比如字典或列表,其中每个元素包含用户ID、日期等信息。 ```python users_gifts = {} # 使用字典,key为用户ID,value为打卡记录 ``` 2. **添加打卡功能**:编写函数,当用户调用时,检查用户是否存在并更新打卡次数。例如,可以使用`datetime`库来记录每日打卡时间。 ```python import datetime def check_in(user_id): today = datetime.datetime.now().strftime("%Y-%m-%d") if user_id not in users_gifts: users_gifts[user_id] = {today: 1} else: if today not in users_gifts[user_id]: users_gifts[user_id][today] = 1 else: users_gifts[user_id][today] += 1 ``` 3. **条件判断与兑换规则**:设定一个规则,如连续7天打卡即可兑换一份礼物。可以遍历用户的打卡记录,检查是否符合条件。 ```python def can_exchange(user_id): user_history = users_gifts.get(user_id, {}) consecutive_days = {} for date, count in user_history.items(): if date - consecutive_days.get(date, '') <= datetime.timedelta(days=6): # 连续6天 consecutive_days[date] = count if len(consecutive_days) == 7: # 找到7连日 return True return False ``` 4. **兑换操作**:如果满足兑换条件,可以删除已达到兑换的打卡记录,并通知用户兑换成功。 ```python def redeem_gift(user_id): if can_exchange(user_id): for day, _ in list(users_gifts[user_id].items())[:7]: # 删除前7天的打卡记录 del users_gifts[user_id][day] print(f"恭喜用户{user_id},您的7天连续打卡已成功兑换礼物!") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值