1.1.注释
#这是单行注释
'''
这是单引号多行注释
颜色不一样
'''
1.2.print输出
#字符串输出
#打印一行信息,单个字符串
print("Ben is a boy")
#打印多行信息,使用多个字符串,遇到逗号输出空格
print("Ben is","a boy")
#数字输出,可以运算
print(10 + 8)
print("10 + 8 =",10 + 8)
1.3.input输入
age = input("请输入你的年龄:")
print("age =",age)
1.4.python数据类型
Xmind图暂不更新
1.5标识符
Xmind图暂不更新
查看关键字:
import keyword
print(keyword.kwlist)
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
1.6变量与常量
age = ['a','b']
#查看变量类型
print(type(age))
#查看变量地址
print(id(age))
1.7Number数字
基础功能
#连续定义多个变量
num1 = num2 = num3 = 1
num4,num5 = 4,5
#浮点数会有四舍五入误差
f1=1.1
f2=2.2
print(f1+f2)
#复数,实数部分和虚数部分组成
数学拓展
'''数字类型转换'''
#int向下取整
print(int(1.9))
print(float(1.9))
print(int('19'))
print(float('1.9'))
print(int('+19'))
print(int('-19'))
print(float('1.9'))
'''数学功能'''
#返回数字的绝对值
a1 = -10
print(abs(a1))
#比较两个数大小
#a2>a3,返回1,a2=a3,返回0,a2a3)-(a2
1.8运算符与表达式
'''表达式:由变量,常量和运算符组成的式子'''
'''
算术运算符
加 减 乘 除 取模 取整 求幂
+ - * / % // **
'''
num1 = 5
num2 = 3
print(num1 ** num2)
print(pow(5,3))
print(num1 // num2)
'''赋值运算符'''
num = 1
num = num + 1
'''
复合运算符
+= a+=b a=a+b
'''
'''
位运算符:把数字看成2进制数运算
'''
# & 与运算,输出十进制
print(5 & 7)
# | 或运算,输出十进制
print(5 | 7)
# ^ 异或运算:当两对应的二进位相异时,结果为1,输出十进制
print(5 ^ 7)
# ~ 按位取反运算:对数据的每个二进制位取反,即把1变为0,把0变为1, ~x 类似于 -x-1
print(~7)
print(-7-1)
#<< 左移动运算符:运算数的各二进位全部左移若干位,高位丢弃,低位补0,符号位不变
#00000111 -> 00011100
print(7<<2)
print(str(int('00011100',2)))
#10000111 -> 10011100
print(-7<<2)
#>> 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位
#00000111 -> 000000001
print(7>>2)
#10000111 -> 000000001
print(-7>>2)
'''
比较运算符
== 等于
!= 不等于
<> 不等于 比较两个对象是否不相等
> 大于
< 小于
>= 大于等于
<= 小于等于 -
'''
'''
逻辑运算符
'''
#x and y 布尔"与" - true它返回 y 的计算值
a = 10
b = 20
print(a and b)
#x or y 布尔"或"- 如果x是非 0,它返回x的值,否则它返回 y 的计算值。
print(a or b)
#not x 布尔"非" 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。
print(not a)
'''成员运算符'''
List=[1,2,3,4]
#in 如果在指定的序列中找到值返回 True,否则返回 False。
# x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
print(3 in List)
#not in 如果在指定的序列中没有找到值返回 True,否则返回 False。
## x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。
print(9 not in List)
'''运算符优先级
**指数 (最高优先级)
~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ - 加法减法
>> << 右移,左移运算符
& 位 'AND'
^ | 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not and or 逻辑运算符
'''
2.1 从控制台输入一个三位数,如果是水仙花数就打印 “水仙花数” ,不是就打印 “不是水仙花数”
num = int(input())
#获取百位
numB = num // 100
#获取十位
num1 = num % 100
numS = num1 // 10
#获取个位
numG = num % 10
if num == numB**3+numS**3+numG**3:
print("水仙花数")
else:
print("不是水仙花数")
3.1.String字符串
字符串基础
'''字符串运算'''
#字符串不可变
#字符串连接
str1 ="Ben is a "
str2 = "bad boy"
str3 =str1+str2
print(str3)
#输出重复字符串
str4 = "good"
str5 = str4 *3
print(str5)
#访问字符串某一个字符
str6 = "hello world"
print(str6[1])
#截取字符串
str7 = "hello world"
#从给定下标截取到指定下标之前[1:8]
print(str7[1:9])
#从0截取到指定下标之前[0:8]
print(str7[:9])
#从指定下标截取到结尾
print(str7[4:])
#格式化输出
num =10
str8 = "abcde"
f = 10.2345
print("num = %d,str=%s,float=%0.2f"%(num,str8,f))
'''转义字符'''
#\n 换行,表示一个字符
print("num = %d\nstr=%s\nfloat=%0.2f"%(num,str8,f))
#单\ 换行,双\\ ,第一个是转移字符,输出\
print("num\nstr\\float")
#单双引号,\" \'
#打印多行
print('''
hello
world
''')
#\t 制表符,空格
print("sunk\tgood")
#r 字符串中很多需要转义的字符,加入r""表示默认不转义
print("\\\t\\")
print(r"\\\t\\")
#适用于Linux 路径
字符串方法
'''字符串方法'''
'''eval(str)'''
#把字符串str转成int 并表达式求值
print(eval("123+4"))
print(type(eval("1233+4")))
print(eval("-12+5"))
'''len()'''
#返回字符串长度
str1 = "abcde"
print(len(str1))
'''String.lower()'''
#转换 string 中所有大写字符为小写
str2 = "BEN is a GOOD boy"
print(str2.lower())
print("%s" %(str2.lower()))
'''String.upper()'''
#转换 string 中所有小写字符为大写
str3 = "BEN is a GOOD boy"
print(str3.upper())
print("%s" %(str3.upper()))
'''String.swapcace()'''
#转换 string 中所有小写字符为大写,大写字符为小写
str4 = "BEN is a GOOD boy"
print(str4.swapcase())
'''String.capitalize()'''
#转换 string 中只有首字母大写
str5 = "BEN is a GOOD boy"
print(str5.capitalize())
'''String.title()'''
#转换 string 中每个单词首字母大写
str6 = "BEN is a GOOD boy"
print(str6.title())
'''String.title()'''
#转换 string 中每个单词首字母大写
str7 = "BEN is a GOOD boy"
print(str7.title())
'''string.center(width,fillchar)'''
#char 单个字符 character
#原字符串居中,使用填充字符(一个)填充至长度 width
str8 = "BEN is a GOOD boy"
print(str8.center(30))
print(str8.center(30,"*"))
'''string.ljust(width,fillchar)'''
#左对齐,使用填充字符(一个)填充至长度 width
str9 = "BEN is a GOOD boy"
print(str9.ljust(30,"*"))
'''string.rjust(width,fillchar)'''
#右对齐,使用填充字符(一个)填充至长度 width
str10 = "BEN is a GOOD boy"
print(str10.rjust(30,"*"))
'''string.zfill(width)'''
#右对齐,前面补0
str11 = "BEN is a GOOD boy"
print(str11.zfill(30))
'''string.count(str,start,end)'''
#输出字符串中该字符串的个数,start,end指定一个范围
str12 = "BEN is a very very GOOD boy very"
print(str12.count("very",15))
'''string.find(str,start,end)'''
#从左到右检测str是否在string中,可指定范围
#返回第一次出现的下标,没有返回-1
str13 = "BEN is a very very GOOD boy very"
print(str13.find("very"))
print(str13.find("very",13,len(str13)))
print(str13.find("girl"))
'''string.rfind(str,start,end)'''
#从右到左,检测str是否在string中,可指定范围
#返回第一次出现的下标,没有返回-1
str14 = "BEN is a very very GOOD boy very"
print(str14.rfind("very"))
print(str14.rfind("very",0,13))
print(str14.rfind("girl"))
'''string.index(str,start,end)'''
#从左向右,返回str在string中的索引,可指定范围
#返回第一次出现的下标,没有返回异常
str15 = "BEN is a very very GOOD boy very"
print(str15.index("very"))
print(str15.index("very",13))
#print(str15.index("girl"))
'''string.rindex(str,start,end)'''
#从右向左,返回str在string中的索引,可指定范围
#返回第一次出现的下标,没有返回异常
str16 = "BEN is a very very GOOD boy very"
print(str16.rindex("very"))
print(str16.rindex("very",0,18))
#print(str16.rindex("girl"))
'''string.lstrip(char)'''
#去除左字符串的指定字符,默认为空格
str17 = "*********BEN is a very very GOOD boy very"
print(str17.lstrip("*"))
'''string.rstrip(char)'''
#去除左字符串的指定字符,默认为空格
str18 = "BEN is a very very GOOD boy very*********"
print(str18.rstrip("*"))
'''string.strip(char)'''
#去除字符串左右的指定字符,默认为空格
str19 = "*********BEN is a very very GOOD boy very*********"
print(str19.strip("*"))
3.2 while语句
格式:
'''while语句'''
while True:
语句
while 表达式:
语句
4.1 打印出所有水仙花数
# 打印所有3位水仙花数
for i in range(100,1000):
iB = i // 100
i1 = i % 100
iS = i1 // 10
iG = i % 10
if i == iB ** 3 + iS ** 3 + iG ** 3:
print(i)
4.2从控制台输入一个数,判断是否是质数(只能被1和自身整除)
'''判断为质数'''
from math import sqrt
# 根据定义,质数除了1和本身之外没有其他约数
# 直接判断从2到n-1是否存在n的约数即可。
def isPrime(num):
for i in range(2, num):
if (num % i) == 0:
print("不是质数")
break
else:
print("是质数")
num = int(input())
isPrime(num)
4.3从控制台输入一个数,输出它的质因数;当读到的就是质数时,输出它本身。
def isPrime(num):
for i in range(2, num):
if (num % i) == 0:
return False
else:
return True
def outPut(num):
for i in range(2,num):
if (num%i) == 0:
print(i)
num = int(input())
if isPrime(num):
print(num)
else:
outPut(num)
3.2布尔值和空值
3.3list列表
3.4tuple元组
3.5条件空值语句