1.基础数据类型
Number数字、String字符串、List列表、Tuple元组、Set集合、dictionary字典。数字、字符串、元组不可变,列表、集合、字典是可变数据类型
数字类型:int float boo complex复数
2.变量无需声明数据类型,且允许同时为多个变量赋值
a,b,c=1,2,"hi"
print(a,b,c)
1 2 hi
3.运算符
+ - * / %余 **乘方
4.字符串:串中有一个反斜杠时表示一个转义序列的开始
\n 换行 \\反斜杠 \"双引号 \t制表符
字符串的运算 +连接 *重复 []索引 [:]切片 in判断是否为子串
子串可以用分离操作符([] / [:])
str *0=空串
1.字符串切片还可以设置取子串的间隔,只需要再增加一个步长参数即可,把[n : m]变成[n : m : step]
2.当step>0时,表示从左向右取字符;当step<0时,表示从右向左取字符。
3.每次取字符的间隔是|step|-1,如step为2,则每隔一个字符取一个字符。
5.输入
不论输入什么,input都接收并将其打包成一个字符串返回。若要接收一个数字,通常在接收的同时进行类型转换。
还有一种推荐的方式,称为表达式解析:变量= eval ( input ("提示字符串"))
通过一个内置的函数eval(),将用户输入的字符串解析为表达式单个数据(也是表达式),若表达式可计算,则计算后返回其值。
可认为eval是去掉接收到的字符串的引号。
6.数据输出
(3)格式化函数输出(格式字符串和format之间用﹒隔开)基本用法
(1)空括号,即“{f}”
(2)带数字(参数位置序号,默认从0开始,可调换顺序),如{1}、{2}(3)带关键字(可读性好),如: {name}、{age}
a="lucy"
b=1
c=20
d=213123.231
print(f"hello {a}",end=" ")
print("age = {}".format(c))
print("age2 = %d" %b)
print('age3 = {:.2f}'.format(d))
7.字符串常见属性方法
. Python对字符串对象提供了大量的成员方法用于字符串的检测、替换和排版等操作。
·使用时需要注意的是,字符串对象是不可变的,所以字符串对象提供的涉及字符串“修改”的方法都是返回修改之后的新字符串,并不对原字符串做任何修改。
str.rfind()
方法用于在字符串中查找子字符串最后一次出现的位置,从右侧开始搜索。
s="fish,fish,rabbit"
print(s.find('fish'))
print(s.rfind('fish'))
print(s.count('fish'))
print(s.find("tiger"))
print(s.index('fish'))
条件语句 【输入1就继续输入直到输入其他】
water = int(input("请输入一个数字:"))
while True: # 这里使用 True 创建一个无限循环,我们需要一个退出条件
if water == 1:
print("1")
water = int(input("请输入一个数字:"))
elif water == 2:
print("2")
break # 这将退出循环
else:
print("3")
break # 退出循环,否则会无限打印 "3"
str = input("请输入一句英文:")
a,b,c = 0,0,0
for s in str:
if s.isupper():
a += 1
elif s.islower():
b += 1
elif s.isdigit():
c += 1
print("大写字符:", a)
print("小写字符:", b)
print("数字字符:", c)
sum = 0
for i in range(1, 101):
sum += i
print("1--100的总和是:{:6d}".format(sum))
n = int(input("输入一个正整数n(n>=2):"))
for i in range(2, n):
if n % i==0:
print("{}不是素数".format(n))
break
if i == n-1: # 若循环正常结束,i就等于n-1
print("{}是素数".format(n))
内置数据类型
lst1 = [] # 创建空列表
for i in range(6):
lst1.append(input())
print("lst1=",lst1)
lst1 = list(range(6))
print(lst1)
lst2 = list(range(1,10,3))
print(lst2)
lst3 = list('hello')
print(lst3)
lst = [ int(input()) for i in range(5) ]
print(lst)
#等价
lst = []
for i in range(5):
x = int(input())
lst.append(x)
print(lst)
转置矩阵:[[row[i] for row in matrix] for i in range(4)]
列表中不涉及元素修改的操作都适用于元组。
sentence = "a bat and an ant"
s = sentence.lower() # 将句中字符都统一成小写
d = {} # 定义一个空字典
for i in s:
# 以每个字符为键,若尚未收录到字典,则其值为0,否则其值加1
d[i] = d.get(i,0) + 1
print(d)
{'a': 5, ' ': 4, 'b': 1, 't': 2, 'n': 3, 'd': 1}
dicAreas={ '俄罗斯' :1707.5, '加拿大' :997.1, '中国' :960.1}
for key in dicAreas.keys():
print(key)
自定义函数
# 定义判断素数的函数
def isPrime(x):
for i in range(2,x//2):
if x % i == 0:
return False
else:
return True
d = int(input())
for i in range(2,d//2+1):
if isPrime(i) and isPrime(d-i):
print(f'{d}={i}+{d-i}')
break
else:
print(f'{d}不能分解成素数之和')