入门笔记,监督自己一步步进步。也用来回顾易错点。
num1 = input("请输入第一个数字")
num2 = input("请输入第二个数字")
#错误方式 sum = num1+num2
sum = float(num1)+float(num2)
print("数字{0}+数字{1}为{2}".format(num1,num2,sum))
input()返回的是一个字符串,而非是一个数字。可以使用float()等方法将字符串转换成数字再进行相加。
注意最好加上try……except ValueError
import random
print(random.randint(0,9))
注意此处的结果是[0,9]
而C++中却是这样
#define random(x) (rand()%x)//[0,x)
要取得[a,b)的随机整数,使用(rand() % (b-a))+ a (结果值 [a,b) )。
C++rand详细参考:
https://blog.csdn.net/weixin_45677333/article/details/111790193
a=1;b=2
a,b=b,a
#!/usr/bin/python3
#coding:utf8
def is_number(str):
try:
float(str)
return True
except ValueError:
pass
try:
import unicodedata
for s in str:
unicodedata.numeric(s)
return True
except (TypeError,ValueError):
pass
return False
while True:
str = input("请输入字符串")
if is_number(str):
print("%s是数字"%str)
else:
if str == "q":
print("结束测试")
break
else:
print("%s不是数字"%str)
注意事项:
1.为什么需要使用#coding:utf8
防止中文乱码
2.使用float后,为什么还需要unicodedata
float可以测试数字,加上unicode后可以测试中文数字等其他含义的数字
#!/usr/bin/python3
#coding:utf8
while True:
str1 = input("请输入一个数字")
try:
num = int(str1)
if num > 1:
for value in range(2,num):#//range(a,b)=>[a,b)
if(num%value)==0:
print("%d不是质数 因为%d*%d=%d"%(num,value,num//value,num))
break;
else:
print("%d是质数"%num)
else:
print("%d是质数"%num)
except ValueError:
if str1 == "q":
break;
else:
print("输入错误,请重新输入")
注意range的范围range(a,b)=>[a,b)
str( )是python自带函数,是python保留的关键字,定义变量时应该避免使用str作为变量名
if num < 0:
print("%d没有阶乘"%num)
elif num == 0:
print("0的阶乘是1")
else:
factorial = 1
for value in range(1,num+1):
factorial = factorial *value
print("%d的阶乘是%d"%(num,factorial))
基础知识,带过就好
#!/user/bin/python3
#coding:utf8
def method1(nums):
num1 = 0
num2 = 1
count = 2
if nums <= 0:
print("请输入一个正整数")
else:
if nums == 1:
print("结果:", num1)
else:
print("结果:", end=" ")
print(num1, " ", num2, end="")
while count < nums:
sum = num1 + num2;
print(" %d" % sum, end="")
num1 = num2
num2 = sum
count = count + 1
print()
def recur_fibo(num):
if num <= 1:
return num
else:
return (recur_fibo(num-1) + recur_fibo(num-2))
def method2(nums):
print("结果:", end=" ")
for i in range(nums):
print(recur_fibo(i),end=" ")
print()
while True:
str1 = input("斐波那契数列,你需要几项?")
try:
nums = int(str1)
method1(nums)
method2(nums)
except ValueError:
if str1 == "q":
print("结束")
break
else:
print("输入错误,请重新输入")
只需要记住:
斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13,特别指出:第0项是0,第1项是第一个1。从第三项开始,每一项都等于前两项之和。
#!user/bin/python3
#coding:utf8
def isArmstrongNumber(num):
n = len(str(num))
sum = 0
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** n
temp //= 10
if sum == num:
return True
else:
return False
while True:
str1 = input("找多少以内的阿姆斯特朗数?")
try:
nums = int(str1)
print(nums,"以内的阿姆斯特朗数有",end=" ")
for num in range(1,nums+1):
if isArmstrongNumber(num):
print(num,end=" ")
print("结束")
except ValueError:
if str1 == "q":
print("结束")
break
else:
print("请输入一个正整数")
需要注意:
如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 + 5^3 + 3^3 = 153。
str( )是python自带函数,是python保留的关键字,定义变量时应该避免使用str作为变量名
dec = int(input("输入"))
print("二进制:",bin(dec),"八进制:",oct(dec),"十进制:",dec,"十六进制:",hex(dec))
print("二进制:",bin(dec),"八进制: 0o%o"%dec,"十进制: %d"%dec,"十六进制: 0x%x"%dec)
c = input("一个字符")
print(c,"的ASCII码是",ord(c))
a = int(input("一个ASCII码"))
print(a,"对应的字符是",chr(a))
带过就行
for i in range(1,smaller + 1):
if((x % i == 0) and (y % i == 0)):
hcf = i
while(True):
if((greater % x == 0) and (greater % y == 0)):
lcm = greater
break
greater += 1
输出日历
import calendar
print(calendar.month(2021,5))
print(calendar.monthrange(2021,5))
#第一个元素是所查月份的第一天对应的是星期几(0-6),第二个元素是这个月的天数
日期
import datetime
def getYesterday():
return (datetime.date.today()-datetime.timedelta(1))
print(getYesterday())
import time
while True:
print("请开始")
input("")
startTime = time.time()
print("计时开始")
try:
while True:
print("计时",round(time.time()-startTime),"秒")
time.sleep(1)
except KeyboardInterrupt:
print("计时结束")
print("总时长",round(time.time()-startTime),"秒")
break
注意: except KeyboardInterrupt
round()四舍五入,深入传送门https://www.cnblogs.com/anpengapple/p/6507271.html
了解就行,后续继续补充
#!user/bin/python3
#coding:utf8
def readfile1(filename):
with open(filename, "r+") as f:
#调用readlines()一次读取所有内容并按行返回list
for lines in f.readlines():
print(lines.strip())
def readfile2(filename):
with open(file_name, "r+") as f:
#text = f.read()
#read()会一次性读取文件的全部内容,所以一般调用read(size)方法
text = f.read(100)
print(text)
#文件读写时都有可能产生IOError
file_name="bobotest.txt"
try:
f = open(file_name,"w")
f.write("第一次写入一行\n")
finally:
if f:
f.close()
#Python引入了with语句自动调用close()方法
with open(file_name,"a") as f1:
f1.write("第二次写入一行\n")
f1.flush()#将缓冲区中的数据立刻写入文件,同时清空缓冲区
readfile1(file_name)
print("重新设置文件读取指针到开头")
f1.seek(0,0)#重新设置文件读取指针到开头
readfile2(file_name)
需要注意:
with语句自动调用close()方法
read()与readlines()需要注意文件大小
print(str.isalnum()) # 判断所有字符都是数字或者字母
print(str.isalpha()) # 判断所有字符都是字母
print(str.isdigit()) # 判断所有字符都是数字
print(str.islower()) # 判断所有字符都是小写
print(str.isupper()) # 判断所有字符都是大写
print(str.istitle()) # 判断所有单词都是首字母大写,像标题
print(str.isspace()) # 判断所有字符都是空白字符、\t、\n、\r
print(str.upper()) # 把所有字符中的小写字母转换成大写字母
print(str.lower()) # 把所有字符中的大写字母转换成小写字母
print(str.capitalize()) # 把第一个字母转化为大写字母,其余小写
print(str.title()) # 把每个单词的第一个字母转化为大写,其余小写
看一眼就行
from functools import reduce
foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
print(list(filter(lambda x:x%2==0,foo)))
print(list(map(lambda x: x * 2 + 10, foo)))
print(reduce(lambda x,y:x+y,foo))
注意:这里与python2有些区别
1.Python3.x reduce() 已经被移到 functools 模块里
2.以上代码python3不加list,则输出是迭代器
def func1(a, b=1, *c, **d):
#print(a, b, c, d)
print("a:{} b:{} c:{} d:{}".format(a, b, c, d))
def fun0(*name):
print(type(name))
print(name)
fun0([1,2,3])
fun0((1,2,3))
fun0(1,2,3)
l = [3, 4]
dic = {
'y': 5, 'z': 6}
func1(1, 2, l, dic)
func1(1, 2, *l, **dic)
func1(1, 2, 3, 4, **dic)
运行结果:
<class 'tuple'>
([1, 2, 3],)
<class 'tuple'>
((1, 2, 3),)
<class 'tuple'>
(1, 2, 3)
a:1 b:2 c:([3, 4], {
'y': 5, 'z': 6}) d:{
}
a:1 b:2 c:(3, 4) d:{
'y': 5, 'z': 6}
a:1 b:2 c:(3, 4) d:{
'y': 5, 'z': 6}
注意:dic中关键字选择’y’,'z’的原因是不能与形参定义相同
name是包裹位置传递所用的元组名,在定义func时,在name前加*号。
dict是一个字典,收集所有的关键字,传递给函数func。参数dict是包裹关键字传递所用的字典,在dict前加**。
仔细讲解传送门:https://www.bbsmax.com/A/GBJrjmBJ0e/
pip install --upgrade --pre uiautomator2
讲解:
pip install --upgrade +包名 升级各种包
-U, --upgrade
Upgrade all specified packages to the newest available version. The handling of dependencies depends on the upgrade-strategy used.
–pre
Include pre-release and development versions. By default, pip only finds stable versions.
传输门:https://pip.pypa.io/en/stable/cli/pip_install/#install-pre