python入门

输出

打印的几个语法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#输出数字 字符串
print(1)
print(1.1)
print('hape')
#输出运算结果
print(1+1)

#输出到文件
fp=open('D:/Shyee.txt','a+')
print('??!!??ioio',file=fp)
fp.close()
#不换行输出
print('hi','I','am','Shyee')
#转移字符实现换行
print("转移\n字符")

#\t 空一格子表位(默认为四个字符,及占四个字符的整数倍,详细参考存储)
#\r 回车(覆盖之前的输出)
#\b 退格
1
2
#原字符,在输出之前加一个r或者R,使得转义字符不起作用
print(R'原字\n符')
1
2
3
4
5
6
#赋值
name='shyee'
print(name)
print('标识',id(name))
print('类型',type(name))
print('值',name)

运行结果:

shyee
标识 1739219025136
类型 <class ‘str’>
值 shyee

0b 二进制
0o 八进制
0x 十六进制

1
2
3
4
#小数加减法提高精度
print(1.1+2.2)
from decimal import Decimal
print(Decimal('1.1')+Decimal('2.2'))

运行结果

3.3000000000000003
3.3

open参数

类型转换

->string:str()

1
print('I am '+str(16)+' years old')

运行结果

I am 16 years old

->int :int()

字符串为小数串不能转为int,必须是数字串(整数)

->float :float()

输入

1
2
3
#输入
key=input("输入前的提示语")
print(key)
1
2
#输入两个整数,求整数的和
print(int(input("第一个整数"))+int(input("第二个整数")))

运行结果

第一个整数1
第二个整数1
2

加+ 减- 乘* 除/

整除//(一正一负的整除结果都是向下取整)

取余% (余数=被除数-除数*商)

求幂运算** (2**3,2的3次方)

赋值

1
2
3
4
a=b=c=20;
print(a,id(a))
print(b,id(b))
print(c,id(c))

运行结果:

20 140718458633888
20 140718458633888
20 140718458633888

解包赋值

1
2
q,w,e=1,2,3
print(q,w,e)

运行结果:

1 2 3

实现swap函数

1
2
3
#实现交换
q,w,e=w,e,q
print(q,w,e)

运行结果:

2 3 1

“==”与”is”

== 比较的是value值

is比较的是标识(id)

1
2
3
4
5
6
7
8
9
10
11
12
a=10
b=10
print(a==b)
print(a is b)

arr1=[1,2,3,4]
arr2=[1,2,3,4]
print(arr1==arr2)
print(arr1 is arr2)
print(id(arr1))
print(id(arr2))
print(arr1 is not arr2)

运行结果:

True
True
True
False
2293512569096
2293512569480
True

not 取反

1
2
3
#not 取反
print(a==b)
print(not a==b)

运行结果:

True
False

in和not in

1
2
3
4
#in&not in
print('s' in 'shyee')
print('l' not in 'shyee')
print(a in arr2)

运行结果:

True
True
False

按位与&按位或

1
2
3
4
5
6
print(4&8)
# 4:0100
# 8:1000
#按位与为0000
print(4|8)
#按位或为1100

运行结果:0 12

左移<<和右移>>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
a=4
print(a<<1)
while a<100:
a=a<<1
print(a)
a=4
# print(a>>1)
while a>0:
a=a>>1
print(a)
#正数右移到最后为0
#负数右移到最后为-1
a=-4
print(a>>1>>1>>1)

运行结果:

8
8
16
32
64
128

2
1
0

-1

优先级:算数运算符>移位运算符(包括& 、|)>比较运算符>与或运算符>赋值运算符

0的布尔值为false none的bool为false

‘ ‘的布尔值为false(空的数据结构都是false)

1
2
3
if 90<=int(input('输入数值'))<=100:
print('数字在90~100之间')
print('数值在90~100之间' if 90<=int(input('输入数值'))<=100 else '数值不在90~100之间')

运行结果:

输入数值99
数字在90100之间
输入数值60
数值不在90
100之间

pass在while中与continue的区别,break还是那个break

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
i=10
while i>0:
i-=1
print(i)
pass
print("pass")
print('----continue----')
i=10
while i>0:
i-=1
print(i)
continue
print("continue")
print('----break----')
i=10
while i>0:
i-=1
print(i)
break
print("break")

运行结果:

9
pass
8
pass
7
pass
6
pass
5
pass
4
pass
3
pass
2
pass
1
pass
0
pass
—-continue—-
9
8
7
6
5
4
3
2
1
0
—-break—-
9

range

1
2
3
4
5
6
#range
print(range(10))
print(list(range(10)))
print(list(range(1,10)))#默认步长为1
print(list(range(1,10,2)))#步长为2
print(2 in list(range(1,10,2)))

运行结果:

range(0, 10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 3, 5, 7, 9]
False

for in

1
2
for i in 'shyee':
print(i)

运行结果:

s
h
y
e
e

1
2
for _ in range(4):
print('Shyee')

运行结果:

Shyee
Shyee
Shyee
Shyee

求1~100之间的偶数和

1
2
3
4
5
6
n=0
c=0
for _ in range(1,101,2):
n+=2
c+=n
print(c)

运行结果:2550

找到100~999之间的水仙花数

1
2
3
4
5
i=100
for _ in range(100,1000):
if ((i%10)**3+(int(i/10)%10)**3+(int(i/100)%10)**3)==i:
print(i,'是水仙花数')
i += 1

运行结果:

153 是水仙花数
370 是水仙花数
371 是水仙花数
407 是水仙花数