python每日一练(4)

简介: python每日一练(4)

(1) 水仙花数

编写程序,找出所有的水仙花数

水仙花数:是一个三位数,各位数字立方和等于该数字本身

# (1) 水仙花数
# 编写程序,找出所有的水仙花数
# 水仙花数:是一个三位数,各位数字立方和等于该数字本身.
# # 先利用一个三位数取得它的个,十,百位
# a = 123
# F = a % 10
# S = (a // 10) % 10  # 小妙招👉:先利用整除取前两位12,再取余数就能得到中间的2.
# T = a // 100
# # 验证一下
# print(F)
# print(S)
# print(T)
#首先,我们需要得到所有三位数
for i in range (100,1000):
    #再分别得到它们的 个 , 十 , 百位
    a = i % 10
    b = (i // 10) % 10
    c = i // 100
    if (a ** 3) + (b ** 3) + (c ** 3) == i:
        print(f'{i}是水仙花数')

通过运行结果验证可知 : 1**3 + 5**3 + 3**3 = 153 其他同理~


 

(2)反向输出四位数

编写程序,输入一个四位整数,反向输出对应四位数。

#反向输出四位数
a = int (input("请输入一个数字:"))
a = str(a)
a = a[::-1]
a = int(a)
print(a)

Python中%和//含义及区别

  1. %:取余运算符,用于得到两个数相除的余数。 例如:
a = 10
b = 3
c = a % b
print(c)  # 输出为1,因为10除以3的余数为1
  1. //:整除运算符,用于得到两个数相除的整数部分。 例如:
a = 10
b = 3
c = a // b
print(c)  # 输出为3,因为10除以3的整数部分为3

需要注意的是,Python中

除法运算符/结果是一个浮点数

//的结果是一个整数

因此在进行除法运算时需要注意结果的类型。

字符串列表都是Python中常用的数据结构,它们都是序列类型的数据,具有很多相似的特性和方法。

相同点

  • 都是序列类型的数据,可以通过索引(下标)来访问其中的元素
  • 都可以进行切片操作,获取子串或子列表;
  • 都可以使用循环语句遍历其中的元素
  • 都可以通过加号(+)运算符来进行拼接操作;
  • 都可以通过乘号(*)运算符来进行重复操作;
  • 都可以使用内置函数len()来获取它们的长度

不同点

  • 字符串不可变的,即不能修改字符串中的某个字符,而列表可变的,可以修改其中的元素;
  • 字符串中的元素必须是字符,而列表中的元素可以是任意类型的数据
  • 字符串有一些专门的字符串方法,例如replace()、split()等,而列表有一些专门的列表方法,例如append()、sort()等。

字符串切片操作是指对字符串进行部分截取的操作,可以通过指定起始位置和终止位置来获取部分子串。在Python中,字符串也是一个序列类型,所以可以对其进行切片操作。

字符串切片的基本语法格式为:

s[start:end:step]

其中,start表示起始位置,默认为0;

          end表示终止位置,但不包含该位置对应的字符;

          step表示步长,默认为1。

在Python中,[::]是一种切片操作符,用于从一个序列中选择一个子集。其格式为[开始索引:结束索引:步长]。步长表示选择的元素之间的间隔,默认为1(即相邻元素),可以使用负数来反向选择元素。

[:: -1]是一个反向步长为1的切片操作符,它从开始位置到结束位置选择整个序列,并反转它们的顺序。换句话说,它用于反转一个字符串或列表。例如:

string = "hello"
reverse_string = string[::-1]
print(reverse_string) # "olleh"
list = [1, 2, 3, 4, 5]
reverse_list = list[::-1]
print(reverse_list) # [5, 4, 3, 2, 1]

 

(3)判断字母

编写程序,输入字符,是否为字母

#利用.isalpha()的python内置方法判断字符串是否只由字母组成
s = input ()
a = s.isalpha()
if a:
    print(f"{s}是由字母组成的")
else:
    print(f"{s}不是字母")

.isalpha() 是 Python 的字符串方法之一,用于判断字符串是否只由字母组成。

如果字符串中只包含字母,则返回 True, 否则返回 False。

以下是一个使用 .isalpha() 方法的例子:

str1 = "hello"
str2 = "hello123"
str3 = "hello, world!"
print(str1.isalpha())
print(str2.isalpha())
print(str3.isalpha())

输出结果为:

True
False
False

在上面的例子中,str1 只包含字母,因此返回 True。而 str2 包含数字和字母,因此返回 False。在 str3 中,字母与逗号、空格等特殊字符混合出现,因此也返回 False。

.isalpha() 方法通常用于输入验证和格式化字符串等场景。

例如,可以使用 .isalpha() 方法检查用户输入的用户名是否只包含字母,或者在对输入的文本进行处理时,删除所有非字母字符


 

(4)判断三角形

编写程序,输入三组数据,判断能否构成三角形的三条边

#判断三角形
a = int(input("请输入第一条边"))
b = int(input("请输入第二条边"))
c = int(input("请输入第三条边"))
if a <=0 or b <= 0 or c <= 0:
    print("输入数据有误,请重新输入")
if a + b > c and a + c > b and b + c > a:
    print(f"{a},{b},{c}三边可以构成三角形")
else:
    print("不可以")

下面是关于我和注释的一些小故事~

作为一名合格的程序员,我觉得写注释非常有必要,原因如下:

  1. 方便自己理解:注释可以帮助自己更好地理解代码,尤其是在重新阅读或修改代码时。
  2. 方便他人理解:注释可以让其他人更容易理解代码,特别是对于那些初次接触代码的人或者不熟悉相关领域的人。
  3. 提高代码的可读性:注释可以使代码更加易读易懂(特别是初学者),更具可维护性和可扩展性。
  4. 方便调试:当代码出现问题时,注释可以帮助你更快地找到问题所在。
  5. 笔记记录:注释还可以作为笔记记录程序员对代码的理解、分析和计划,方便后期回顾和改进。

我认为程序员不写注释的原因是什么

  1. 匿名性:有些程序员并不想留下个人信息,或是想保持匿名状态。
  2. 忘记了:有时候在写代码的时候,程序员会将所有的思路都放在脑海中,却忘记了为代码添加注释。
  3. 懒惰:有些程序员可能认为添加注释是一件非常繁琐的事情,会浪费时间,他们可能认为代码足够清晰,不需要注释。
  4. 代码易懂:有些程序员可能认为,自己写的代码非常简单易懂,不需要添加注释。
  5. 心态问题:有些程序员可能认为,他们只是为了完成任务而写代码,添加注释反而会干扰思维或耽误时间,不方便沉浸在程序设计中。

如何才能写出漂亮的注释

1.简洁明了:注释要简洁明了,能够用尽可能少的文字,清晰地表达代码的意图。

2.规范化:符合规范的注释很容易增加代码的可读性。

3.准确性:注释要准确地反映代码的意图,避免出现歧义,防止误导其他开发人员

4.语言风格:注释应该符合团队内部的语言风格,避免出现过于口语化或是文艺化的注释,统一风格有助于提高文档可读性。

5.逻辑清晰:注释应该与代码逻辑清晰联结,能够让读者快速地理解代码的含义。

及时更新:代码随时都在更新,注释也应该随着代码一同更新,否则会造成混乱和错误的理解。

6.适当提供注释:根据代码的复杂性和其他因素,注释的多少应该把握好,既不能太少,也不能太多,以保证代码的易读性。

综上所述,写出漂亮的注释,需要考虑到注释的格式规范,注重注释的准确性和逻辑性,注重代码的可读性,并及时更新注释。

目录
相关文章
|
6月前
|
Python 人工智能
讯飞星火、文心一言和通义千问同时编“贪吃蛇”游戏,谁会胜出?
讯飞星火、文心一言和通义千问同时编“贪吃蛇”游戏,谁会胜出?
103 1
讯飞星火、文心一言和通义千问同时编“贪吃蛇”游戏,谁会胜出?
|
6月前
|
Shell Unix Linux
Linux 终端命令之文件浏览(3) less
Linux 终端命令之文件浏览(3) less
68 0
Linux 终端命令之文件浏览(3) less
|
6月前
|
Rust
Rust 编程小技巧摘选(8)
Rust 编程小技巧摘选(8)
200 0
Rust 编程小技巧摘选(8)
|
6月前
|
算法 C++ 机器人
力扣 C++|一题多解之动态规划专题(1)
力扣 C++|一题多解之动态规划专题(1)
63 0
力扣 C++|一题多解之动态规划专题(1)
|
6月前
|
C++ Python 索引
Python Numpy入门基础(二)数组操作
Python Numpy入门基础(二)数组操作
56 0
Python Numpy入门基础(二)数组操作
|
6月前
|
C++ 存储
力扣C++|一题多解之数学题专场(1)
力扣C++|一题多解之数学题专场(1)
49 0
力扣C++|一题多解之数学题专场(1)
|
6月前
|
Java Go C++
Golang每日一练(leetDay0118) 扁平化嵌套列表迭代器、整数拆分
Golang每日一练(leetDay0118) 扁平化嵌套列表迭代器、整数拆分
58 0
Golang每日一练(leetDay0118) 扁平化嵌套列表迭代器、整数拆分
|
6月前
|
Java Go C++
Golang每日一练(leetDay0114) 矩阵中的最长递增路径、按要求补齐数组
Golang每日一练(leetDay0114) 矩阵中的最长递增路径、按要求补齐数组
62 0
Golang每日一练(leetDay0114) 矩阵中的最长递增路径、按要求补齐数组
|
6月前
|
Java Go C++
Golang每日一练(leetDay0110) 零钱兑换I\II Coin Change
Golang每日一练(leetDay0110) 零钱兑换I\II Coin Change
85 0
Golang每日一练(leetDay0110) 零钱兑换I\II Coin Change
|
6月前
|
Java Go Rust
Rust每日一练(Leetday0030) 合并有序数组、格雷编码、子集II
Rust每日一练(Leetday0030) 合并有序数组、格雷编码、子集II
85 0
Rust每日一练(Leetday0030) 合并有序数组、格雷编码、子集II