1,编程实现9*9乘法表
2,用函数实现100-200里面的所有素数。
提示:素数的特征是除了1和其本身能被整除,其它数都不能被整除的数
3,请用一个函数实现一个判断用户输入的年份是否是闰年的程序
提示:
1.能被400整除的年份
2.能被4整除,但是不能被100整除的年份
以上2种方法满足一种即为闰年
4,用函数实现输入某年某月某日,判断这一天是这一年的第几天?闰年情况也考虑进去
20180818
是今年第x天
自己写的小白级代码:
def fun():
monthList =[31,28,31,30,31,30,31,31,30,31,30,31]
year = int(input("请输入年份:"))
month = int(input("请输入月份:"))
day = int(input("请输入天数:"))
if year%400==0 and month>2:
day+=1
sumNum = 0
i = month-1
while i>0:
sumNum += monthList[i-1]
i -= 1
result = sumNum + day
print("%d年%d月%d日是%d年的第%d"%(year,month,day,year,result))
fun()
测试:
============== RESTART: C:/Users/Administrator/Desktop/demo.py ==============
请输入年份:2000
请输入月份:3
请输入天数:1
2000年3月2日是今年的第61
5,简单的文件备份(输入文件的名字,然后程序自动完成对文件的备份)
代码如下:
#制作文件备份
oldFileName = input("请输入要拷贝的文件名字:")
oldFile = open(C:\Python37\oldFileName, "r")
#如果打开文件
if oldFile:
#提取文件后缀
fileFlagNum = oldFileName.rfind(".")
if fileFlagNum > 0 :
fileFlag = oldFileName[fileFlagNum:]
#组织新的文件名字
newFileName = oldFileName[:fileFlagNum] + "[附件]" + fileFlag
#创建新的文件
newFile = open(newFileName, "w")
#把旧的文件数据一行一行的进行复制到新文件中
for lineContent in oldFile.readlines():
newFile.write(lineContent)
#关闭文件
oldFile.close()
newFile.close()
6 , 请写出一段 Python 代码实现分组一个 list 里面的元素,比如 [1,2,3,...100]变成 [[1,2,3],[4,5,6]....]
我的代码:
[[x,y,z] for x in range(1,99,3) for y in range(x+1,x+2) for z in range(y+1,y+2)]
结果如下:
>>> [[x,y,z] for x in range(1,99,3) for y in range(x+1,x+2) for z in range(y+1,y+2)]
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18], [19, 20, 21], [22, 23, 24], [25, 26, 27], [28, 29, 30], [31, 32, 33], [34, 35, 36], [37, 38, 39], [40, 41, 42], [43, 44, 45], [46, 47, 48], [49, 50, 51], [52, 53, 54], [55, 56, 57], [58, 59, 60], [61, 62, 63], [64, 65, 66], [67, 68, 69], [70, 71, 72], [73, 74, 75], [76, 77, 78], [79, 80, 81], [82, 83, 84], [85, 86, 87], [88, 89, 90], [91, 92, 93], [94, 95, 96], [97, 98, 99]]
>>>
7 , 列表去重 例如:a = [1,2,4,2,5,6,5,7,9,9,0]
两种方式:
1,SET 集合去重
def main():
"""列表去重"""
a = [1,2,4,2,5,6,5,7,9,9,0]
a = list(set(a))
print(a)
if __name__ == '__main__':
main()
SET 去重有个缺点,那就是会打顺序,也就是无需的
2,字典去重
def main():
"""列表去重"""
a = [1,2,4,2,5,6,5,7,9,9,0]
b = {}
b = b.fromkeys(a) # 会把a列表中的元素变成 字典b的键 由于 键 是唯一的,所以一定不会重复
c = list(b.keys())
print(c)
if __name__ == '__main__':
main()
8,运算符的坑,代码如下:
temp = input("请输入:")
if temp == "YES" or "yes":
print("if 执行了")
else:
print("else 执行了")
正常思维:如果输入 YES 或者 yes 就会执行if 语句, 如果输入其它的字符串,就会执行 else 语句
验证代码:
temp = input("请输入:")
if temp == "YES" or "yes":
print("if 执行了")
else:
print("else 执行了")
请输入:>? 6666
if 执行了
分析:
or 运算符只要两边有一个为true 就会返回true
temp == “YES”or "yes" 因为 == 运算符优先度比or运算符的高,搜先会判断or左边的表达式,如果左边的为结果true 右边的就不用计算了,左边结果为false的话,就会计算右边的结果,右边的为一个字符串“yes”,它是一个有值的字符串,所以or右边的结果是true。
表达能力不强,说的有点云里雾里的。最简单最直接的就是把
if temp == "YES" or "yes":
看成
if (temp == "YES") or ("yes"):
你就会发现 or 右边的结果会一直为 true ,不管输入我们输入什么字符串,都会执行 if 语句
附:运算符的优先级 顺序依次递增
Lambda #运算优先级最低
逻辑运算符: or
逻辑运算符: and
逻辑运算符:not
成员测试: in, not in
同一性测试: is, is not
比较: <, <=, >, >=, !=, ==
按位或: |
按位异或: ^
按位与: &
移位: << ,>>
加法与减法: + ,-
乘法、除法与取余: *, /, %
正负号: +x, -x