python学习笔记总结0114

python注释

程序中多写注释,方法有3种:#单行注释;’’‘多行注释’’’; “”“多行注释”""。

python数据类型

整数类型:int(没有上限)
浮点类型:float(没有限制)
字符串类型:str “你好” ‘nihao’
布尔类型: bool True和False
列表类型
元组类型
字典类型
复数类型

python标识符和关键字

1.由字母,数字和下划线组成;
2.数字不能开头;
3.不可以是关键字;查看关键字:import keyword print(keyword.kwlist)
4.见名知意

数据类型转换

a = input("输入一个数:")
a = int(a)
print(a)
#精度的变化
h = 1.555
i = "3.14"
#字符串转换成浮点型,过程中可能发生精度的损失
w = float(i) + h
print(w)
print(type(w))

#测试题出错的部分,输入一个大写字母,输出它的小写字母
a = input("输入一个大写字母:")
print(a.lower())
#print(a.upper())输出大写字母
#练习题用到新的内置函数的
#输入一个数判断其是几位数
a = input("请输入数字:")
print(len(a))

运算符

*算数运算符: + - * / % ** //
比较运算符: == > < >= <= != <>(p2) bool
逻辑运算符: and or not bool
and :两侧表达式都成立才成立
or :有一侧成立就成立
not:非真即假,非假即真
当左侧表达式能够确定最后结果 右侧表达式不计算
赋值运算符: = += -= = /= %= = //=

分支语句

if 表达式(bool):
逻辑代码1
else:
逻辑代码2

     if 表达式1(bool):
         逻辑代码1
     elif 表达式2(bool):
         逻辑代码2
     elif 表达式3(bool):
         逻辑代码3
     ....
     else:
         逻辑代码n
#判定成绩
score = input("请输入成绩:  ")
score = int(score)
if score >=0 and score <= 100:
    if score >= 90:
        print("优秀")
    elif score >=80 and score <= 90:
        print("良好")
    elif score >=60 and score <= 80:
        print("及格")
    else:
        print("挂了")
else:
    print("成绩不合法")
#规范的缩进是python的灵魂^_^

测试题5,我看不懂答案!!

有2到99间两数a、b,A知道和s,B知道积m,然后是后面的对话,A对B说:“虽然我不知道那两个数字,可是我能肯定你也不知道.” B说:" 我原来确实不知道,可是你这么一说,现在我知道了." A于是说:" 既然你这么说,那我也知道了," 问是哪两个数字?

由A的第一句话就可以推得,两数和必然小于55
原因:如果s=a+b>=55,则s一定可以写为s=c+d,其中53<=c<=97,是素数,2<=d<=99.
这样,假如恰好a取c、b取d,那么m=cd=ab是一个可唯一乘积分解的数,也就是说B有可能只知道积就可以猜出来.
那么A说你一定猜不出就不准确了,所以s<55
由A的第一句话还可以推得,这两个数不能写为两个素数的积.因此,根据哥德巴赫猜想“每一个大于或等于6的偶数都可表示成两个奇素数之和”,推得至少在2~200范围内,s不能是偶数
所以s的取值范围目前可以确定为[5,54]间的奇数,还可以进一步缩小范围.对奇素数p,3<=p<=53,p+2是s肯定取不到的数,因为如果取到了,存在2+p的分解使它们的积唯一.这样s可能的取值范围就是{11,17,23,27,29,35,37,41,47,51,53}
s是奇数,说明a,b必然一个为奇一个为偶(不妨a奇b偶).因此m=ab为偶数
再分析B的第一句话.因为仅仅上面的条件就可以在知道m的条件下,而推出a,b.所以m=a
b的奇偶分解必然是唯一的.这说明奇数a必然是素数,b=2^n
再看A的的二句话.同样,仅仅上面的条件,就能确定s,说明s形如奇素数加一个2^n的偶数的分解也是唯一的.
根据上面的几条判据,对{11,17,23,27,29,35,37,41,47,51,53}进行筛选,同时注意s的a+b分解唯一性,可以很快得到结果
例如:11=4+7=8+3,不唯一
23=16+7=4+19,不唯一
.
最终得到s=17,a=13,b=4,m=52

你可能感兴趣的:(python)